* 자식 클래스는 부모 클래스의 모든 자원을 사용할 수 있지만 private 접근자의 속성과 메소드는 사용 불가능
[1] 메소드 오버라이드
부모 클래스의 기능을 자식 클래스에서 재정의해서 사용하는 것
[2] 클래스도 데이터타입이다
[3] 상위 클래스를 호출할 때 super 키워드 이용
public class No3_Inheritance_Parents {
// 필드
public String name;
public String ssn;
// 생성자
public No3_Inheritance_Parents(String name, String ssn) {
this.name = name;
this.ssn = ssn;
}
// 메소드
double areaCircle(double r) {
return 3.141592 * r * r;
}
}
public class No3_Inheritance_Child extends No3_Inheritance_Parents{
// 필드
public int studentNo;
// 생성자
public No3_Inheritance_Child(String name, String ssn, int studentNo) {
super(name, ssn);// 부모생성자 호출
this.studentNo = studentNo;
}
// [1] 메소드 재정의
// 메소드 자동생성: Source - Override/Implement Methods
@Override
double areaCircle(double r) {
return Math.PI * r * r;
}
// [3] 상위클래스 호출
void method() {
System.out.println(areaCircle(3.3)); // 재정의된 메소드 호출 from 자식
System.out.println(super.areaCircle(3.3)); // 재정의 전 메소드 호출 from 부모
}
}
public class No3_Inheritance_Child_Ex {
public static void main(String[] args) {
//[2] 클래스도 자료형이다 ex) 여러 자식클래스로 배열생성 가능
No3_Inheritance_Child some = new No3_Inheritance_Child("홍길동", "999999-2222222", 30);
System.out.println(some.name);
System.out.println(some.ssn);
System.out.println(some.studentNo);
some.method();
}
}
'Java' 카테고리의 다른 글
[Java] 인터페이스 (0) | 2021.07.27 |
---|---|
[Java] 내부클래스, 익명클래스 (0) | 2021.07.27 |
[Java] static과 private, Getter&Setter (0) | 2021.07.24 |
[Java] 객체, 클래스, 오버로딩 (0) | 2021.07.24 |
[Java] String 다루기(1) (0) | 2021.07.22 |