-
java 오버라이딩 예제Programming Language/java 2020. 12. 12. 21:31
public class Test { public static void main(String[] args) { Parent p = new Child("c"); p.print(); //출력 //p //c //순서로 출력된다. } static class Parent{ void print() { System.out.println("p"); } } static class Child extends Parent{ private String element; public Child(String element){ this.element=element; } @Override void print(){ super.print(); System.out.println(element); } } }
다형성과 오버라이딩 속성에 따라 자식의 재정의된 메소드가 호출된다.
참고
[JAVA] 자바 다형성(Polymorphism) 개념부터 응용 쉬운 설명
다형성(Polymorphism) 다형성이라는 개념은 OOP에서 아주 중요한 개념이므로 모르면 OOP에 대해서 제대로 안다고 할 수 없는 개념입니다. 각 요소들이 여러 가지 자료형으로 표현될 수 있다는 것을 말
reakwon.tistory.com
추가로 궁금했던점.
Parent로 선언하고 Child로 생성 했을때
오버라이드 메소드가 아닌 Child만의 메소드를 호출하면 (t.onlychild();)
cannot find symbol 에러가 난다.
public class Test { public static void main(String[] args) { Parent t = new Child(); t.print(); t.onlychild(); } static class Parent{ public void print(){ System.out.println("p"); } } static class Child extends Parent{ public void print(){ System.out.println("c"); } public void onlychild(){ System.out.println("only"); } } }
'Programming Language > java' 카테고리의 다른 글
[디자인 패턴] Iterator 패턴 (0) 2023.08.19 Thread start() run() 차이 (0) 2022.06.26 JAVA - 클래스변수, 인스턴스변수, 지역변수 (0) 2021.01.05 Java 배열 내용 값이 같은지 비교하려면, (0) 2021.01.04 람다식이란?? (0) 2020.09.30