package ex0723;

public class Ex02_override {
	public static void main(String[] args) {
		Sample2 s = new Sample2();
		
		s.print();
		s.write();
	}
}
class Test2 {
	int a= 10;
	
	public void print() {
		System.out.println("a:"+a);
	}
}

class Sample2 extends Test2 {
	int x = 100;
	
	public void write() {
		super.print();
	}
	
	// 재정의되는 메소드의 접근 제어자는 크거나 같아야 한다.
	// 메소드 override : 메소드의 시그니처가 동일해야 한다.
	// 상위 클래스의 메소드를 재정의하면 재정의된 상위 클래스의 메소드는 숨는다.
	@Override // 메소드가 오버라이드 규칙에 맞는지를 검증하고 맞지 않으면 에러 발생
	public void print() {
		System.out.println("a:"+a+ ",x:"+x);
	}
	
	// overloading
	public void print(int n) {
		System.out.println(n);
	}

 

+ Recent posts