public class Main {
public static void main(String[] args) {
System.out.println("=================생성자테스트=================");
Child c1 = new Child();
Child c2 = new Child("1");
System.out.println("====================생성자테스트2=================");
Parent p1 = new Child();
Parent p2 = new Child("2");
System.out.println("====================생성자테스트3=================");
GrandParents gp1 = new Child();
GrandParents gp2 = new Child("3");
System.out.println("=================상속 중복 정의 테스트==================");
Child c3 = new Child();
System.out.println("c3 str = " + c3.pStr);
Child c4 = new Child("4");
System.out.println("c4 str = " + c4.pStr);
Parent p3 = new Child();
System.out.println("p3 str = " + p3.pStr);
Parent p4 = new Child("5");
System.out.println("p4 str = " + p4.pStr);
GrandParents g1 = new Child();
System.out.println("g1 str = " + g1.pStr);
GrandParents g2 = new Child("6");
System.out.println("g2 str = " + g2.pStr);
GrandParents g3 = new Parent();
System.out.println("g3 str = " + g3.pStr);
GrandParents g4 = new Parent("7");
System.out.println("g4 str = " + g4.pStr);
GrandParents g5 = new GrandParents();
System.out.println("g5 str = " + g5.pStr);
GrandParents g6 = new GrandParents("8");
System.out.println("g6 str = " + g6.pStr);
}
}
class GrandParents {
String pStr = "grand parents";
GrandParents() {
System.out.println("GrandParents()");
}
GrandParents(String str) {
System.out.println("GrandParents str생성자");
}
}
class Parent extends GrandParents {
String pStr = "parents";
Parent(){
System.out.println("Parent 생성자");
}
Parent(String str){
System.out.println("Parent str생성자");
}
}
class Child extends Parent{
String pStr = "child";
Child(){
System.out.println("Child 생성자");
}
Child(String str){
System.out.println("Child str생성자");
}
}
생성자와 변수 데이터는 메소드 오버라이딩과 결과가 조금 달랐다.
메소드 오버라이딩은 자식 클래스에 오버라이딩이 돼 있으면 부모 클래스에서 같은 메소드명을 호출해도 자식 클래스의 메소드를 우선 호출했다. 하지만 생성자와 변수 데이터는 변수 타입을 많이 따라간다는 생각이 들었다.
'언어 > JAVA' 카테고리의 다른 글
Scanner객체 NoSuchElementException 오류 (0) | 2021.06.20 |
---|---|
Java 버전별 달라진 점. (0) | 2020.07.22 |
JAVA 문자열 실수형 변환 및 반올림 함수 사용법 (0) | 2019.08.11 |
이클립스 주석 컬러 변경 (0) | 2019.06.18 |
문자열 비교 ( ==, compare, equals 차이점) (0) | 2019.06.15 |