public class mainClass {
public static void main(String[] args) {
MyClass cls = new MyClass();
cls.method();
cls.method();
MyClass cls1 = new MyClass();
System.out.println();
//멤버 변수는 초기화되서 처음으로 돌아가지만 static은 그대로다.
cls1.method();
cls1.method();
//상수
//대문자로 표현하기
//가독성을 위해 대문자로 선언한다.
final int NUMBER = 3;
// num = NUMBER;
// MyClass mcls = new YouClass();
Object mcls = new YouClass();
MyClass my = (MyClass)mcls;
YouClass yo = (YouClass)my;
//안됨
// YouClass ycl = new YouClass();
//
// MyClass my = (MyClass)ycl; // 불가능
//
// NUMBER = 5; 에러 발생 final로 선언하면 새로 변경이 불가능하다.
}
}
//final을 붙이는 순간 상속이 불가능하다 상속 금지
//final class MyClass{
class MyClass{
private int number; //member 변수
public static int strNumber; // static 변수
//오버라이딩 금지
public final void method() {
int num = 0; //local 변수
num++;
this.number++;
MyClass.strNumber ++;
System.out.println("num = " + num);
System.out.println("number = " + number);
System.out.println("strNumber = " + strNumber);
}
}
class YouClass extends MyClass{
// 오버라이딩 금지
// public void method() {
//
// }
}