다형성 MainClass
package day08.poly.basic;
public class MainClass {
public static void main(String[] args) {
Child c = new Child();
c.method01(); //상속
c.method02(); //오버라이드
c.method03(); //내꺼
System.out.println("======다형성======");
//자식이 부모에 저장 되는데, 부모님 처럼 사용되지만, 자식의 오버라이딩된 메서드가 실행됨
Parent p = c;
p.method01();
p.method02();
// p.method03(); //3번 메서드는 Parent클래스에 없기에 사용 불가능
System.out.println(p==c); //동일한 주소값을 나타냄
System.out.println("======클래스 캐스팅======");
//다형성이 적용되면, 자식이 가지고 있던 본래의 기능을 사용할 수 없기 때문에
//클래스캐스팅이 가능해진다
Child cc = (Child)p;
cc.method01();
cc.method02();
cc.method03();
System.out.println("----------주의할점----------");
//다형성이 적용된 객체만 캐스팅이 가능하다
Parent pp = new Parent(); //Parent로 만들어져서 Child의 기능이 없기에
Child ccc = (Child)pp; //ClassCastException이라는 에러가 나옴
}
}
부모클래스
package day08.poly.basic;
public class Parent {
public void method01() {
System.out.println("부모의 1번 메서드");
}
public void method02() {
System.out.println("부모의 2번 메서드");
}
}
자식클래스
package day08.poly.basic;
public class Child extends Parent {
public void method02() {
System.out.println("오버라이드 된 2번 메서드");
}
public void method03 () {
System.out.println("자식의 3번 메서드");
}
//alt + shift + s
}
'JAVA > 코드' 카테고리의 다른 글
2022_10_12 연습 05 Quiz12 다향성을 이용한 문제 활용 (0) | 2022.10.12 |
---|---|
2022_10_12 연습 04 다형성 배열 & 이종모음 (0) | 2022.10.12 |
2022_10_12 연습 02 다형성 설명 (0) | 2022.10.12 |
2022_10_12 연습 01 Quiz11 MainClass & Computer & KeyBoard & Mouse & Monitor (0) | 2022.10.12 |
2022_10_11 연습 09 Quiz 10 (클래스 배열) (0) | 2022.10.11 |
댓글