-
[JAVA] 상속 예제프로그래밍/JAVA 2020. 7. 26. 02:23
public class ParentClass { int openYear = 1995; public ParentClass() { System.out.println("부모 클래스 생성자"); } public void parentFun() { System.out.println("parentFun()"); } private void privateFun() { System.out.println("privateFun()"); } public void makeJJajang() { System.out.println("makeJJajang() START"); } }
public class FirstChildClass extends ParentClass { int openYear = 2010; public FirstChildClass() { System.out.println("FirstChildClass 생성자"); } public void firstChildFun() { System.out.println("firstChildFun()"); } // 메소드 오버라이드(Override) @Override public void makeJJajang() { System.out.println("firstChildClass makeJJajang() START"); } // 상위 클래스를 호출할 때 super 키워드를 사용 public void getOpenYear() { System.out.println("firstChildClass Open Year : " + this.openYear); System.out.println("parentClass Open Year : " + super.openYear); } }
public class SecondChildClass extends ParentClass { public SecondChildClass() { System.out.println("SecondChildClass 생성자"); } public void secondChildFun() { System.out.println("secondChildFun()"); } // 메소드 오버라이드(Override) @Override public void makeJJajang() { System.out.println("secondChildClass makeJJajang() START"); } }
/* 20200906 - 상속 스터디 */ public class MainClass { public static void main(String[] args) { FirstChildClass firstChild = new FirstChildClass(); firstChild.parentFun(); firstChild.firstChildFun(); /* 출력 순서 부모 클래스 생성자 자식 클래스 생성자 parentFun() firstChildFun() */ // 부모클래스에 private으로 선언된 메소드는 자식 클래스가 접근할 수 없음 // firstChild.privateFun(); // 클래스도 자료형이므로 다음과 같이 배열 형태로 사용가능 // 부모 클래스 배열에 자식 클래스 객체를 담을 수 있다. ParentClass[] pArr = new ParentClass[2]; ParentClass fch = new FirstChildClass(); ParentClass sch = new SecondChildClass(); pArr[0] = fch; pArr[1] = sch; for(int i=0;i<pArr.length;i++) { pArr[i].makeJJajang(); } firstChild.getOpenYear(); } }
추가로 알게된 점
Object 클래스는 모든 클래스의 상위 클래스이므로 즉 모든 클래스의 부모 클래스라고 할 수 있다.
'프로그래밍 > JAVA' 카테고리의 다른 글
[JAVA] static 멤버, static 메소드 (0) 2020.08.05 [JAVA] 자바 리플렉션(Java Reflection) (0) 2020.07.31 [JAVA] 접근지정자(Access Specfier) (0) 2020.07.26 [JAVA] 가비지 컬렉터(Garbage Collector) (0) 2020.07.26 [JAVA] 클래스와 객체 + 생성자 (0) 2020.07.26