// 부모 클래스
class SuperClass {
// 필드
// 메서드
}
// 자식 클래스
class SubClass extends SuperClass {
// 필드
// 메서드
}
public class Circle {
@SuppressWarnings("unused")
private void secret() {
System.out.println("비밀이다.");
}
protected void findRdius() {
System.out.println("반지름이 10.0센티 이다.");
}
public void findArea() {
System.out.println("넓이는 (PI * 반지름 * 반지름)이다.");
}
}
public class Ball extends Circle {
private String color;
public Ball(String color) {
this.color = color;
}
public void findColor() {
System.out.println(color + " 공이다.");
}
public void findVolume() {
System.out.println("부피는 4/3*(PI * 반지름 * 반지름 * 반지름)이다.");
}
@Override // annotation, Overriding
public void findArea() {
System.out.println("넓이는 4 * (PI * 반지름 * 반지름)이다.");
}
}
메서드이름 : 동일하다. 동일하다.
매개변수 : 동일하다. 다르다.
반환 타입 : 동일하다. 관계없다.
상속 관계 : 필요하다. 필요없다.
예외와 접근 범위 : 제약이 있다. 제약이 없다.
바인딩 : OL : 호출할메서드를 실행중 결정하는 동적 바인딩이다.
OR : 호출할 메서드를 컴파일할 때 결정하는 정적 바인딩이다.
super() : 부모 클래스의 생성자를 부른다.
this() : 현재 클래스의 현재 생성자 외 다른 생성자를 부른다.
Annotation : @Overriding을 써줘야지만 문법적 오류를 확인할 수 있다.