안녕하세요. 오늘은 자바 상속에 대해 알아보겠습니다.
상속이란 기존의 클래스에 새로운 것들을 정의하여 클래스를 정의하는 것 입니다.
상속 기본개념
자식클래스에서는 부모클래스의 변수와 메소드를 사용 할 수 있게 됩니다.
class 자식클래스 extends 부모클래스 이런식으로 선언하게 됩니다.
(자식클래스 = 하위클래스 = 서브클래스 , 부모클래스 = 상위클래스=수퍼클래스)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | public class child extends parent{ void seeInfor(){ System.out.println("home price : " + homePrice); System.out.println("home size : " + homeSize); seeDish(); } } class parent{ int homePrice = 10; int homeSize = 100; String todayDish = "meat"; void seeDish() { System.out.println(todayDish); } } | cs |
상속에서 생성자 사용하기
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | public class main { public static void main(String args[]) { child ch = new child(); ch.seeInfor(); } } class child extends parent { public child() { System.out.println("child"); } void seeInfor() { System.out.println("home price : " + homePrice); System.out.println("home size : " + homeSize); seeDish(); } } class parent { int homePrice = 10; int homeSize = 100; String todayDish = "meat"; public parent() { System.out.println("parent"); } void seeDish() { System.out.println(todayDish); } } | cs |
결과
parent
child
home price : 10
home size : 100
meat
상속에서 생성자를 사용하게되면 먼저 부모클래스의 생성자를 호출하고 그 다음에 자식클래스의 생성자를 호출하게 됩니다.
super();
1 2 3 4 5 6 | class child extends parent { public child() { super(); System.out.println("child"); } } | cs |
그러나 super()는 명시적되어있지 않으면 자동으로 명시가 됩니다. super()을 통해서 인자를 전달 할 수 있습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | public class main { public static void main(String args[]) { child ch = new child("GOOD"); } } class child extends parent { public child(String myState) { super(myState); } } class parent { public parent(String childState) { System.out.println("child State =" + childState); } } | cs |
결과
child State =GOOD
'프로그래밍 언어 > JAVA' 카테고리의 다른 글
자바 인터페이스(interface) (0) | 2017.12.05 |
---|---|
자바 String클래스 알아보기 (0) | 2017.12.04 |
자바 메소드 오버라이딩이란(Method Overriding) (0) | 2017.12.01 |
자바 메소드 오버로딩이란(Method Overloading) (0) | 2017.11.24 |
자바 인스턴스 변수 vs 클래스 변수 (0) | 2017.11.24 |