final 지정자는 클래스나 필드 method 등에 적용해 사용한다
class 에 사용될경우 상속을 할수 없게한다
method에 적용될경우 overriding을 할수없게한다
변수에 적용하면 상수형 변수를 만든다(변수값을 변경할수없다)
//final public class Super
final double PI = 3.14; //상수를 사용할땐 대문자사용
final public void method() {
System.out.println("super class")
}
-------
//class Super
public void method() {
System.out.pritnln("suepr class");
}
final public void method1() {
System.out.println("final test1");
}
//final class Sub extends Super
//ifnal class는 다른 class를 상속받을수는있다
public void method() { //overriding을 할수있다
System.out.println("sub class");
public void method1() {
System.out.println("final test2")
} //super class 에 있는 final method는 overriding 할수 없다.
//class Subsub Extends Sub
//final 지정자가 있기때문에
//Sub class 를 상속받을수 없다
-----------
//class FinalEx
final public static int AA = 10;
//변수앞에 final쓸경우 주로 이런식으로쓰인다
int aa = 100;
//public class FinalEx2
//main
FinalEx fe = new FinalEx();
System.out.println(fe.aa); //100이 출력된다
System.out.println(FinalEx.AA);
//class 변수이기때문에 class명을붙여서 호출한다
fe.aa = -100; //값을 변경할수있다
FinalEx.AA = 200; //final 변수 상수값은 바꿀수없다
'java' 카테고리의 다른 글
다형성(Polymorphism) -first (0) | 2019.08.03 |
---|---|
인터페이스(interface) (0) | 2019.08.03 |
추상클래스(abstract class), 추상메소드(abstract method) (0) | 2019.08.02 |
접근 제어자(Access modifier) (0) | 2019.08.02 |
inheritance(상속), overriding (0) | 2019.08.02 |