Java
[Java] 상속 메소드 오버라이드, 자료형, super 클래스
happyhelen
2021. 7. 24. 12:58
* 자식 클래스는 부모 클래스의 모든 자원을 사용할 수 있지만 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();
}
}