19.04.09 상속, final
Back-End/Java 2019. 4. 9. 17:39-상속-
부모가 자식에게 물려주는 행위로 자식은 상속을 통해서 부모가 물려준것을 자연스럽게 이용할 수 있다.
부모클래스의 생성자 호출
-자식 클래스의 생성자 최상단에서 "super(매개값);" 명령어를 사용해서 부모클래스의
생성자를 호출 한다.
상속하는 법
- public class "자식클래스 이름" extends "부모클래스 이름"
-예제 및 출력결과-
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 | package chap07Inheritance; public class chap07Inheritancefather { String model; String color; public chap07Inheritancefather() { System.out.println("부모 클래스의 생성자가 호출되었습니다."); } String name(String n) { System.out.println("부모"+n+"메서드가 호출 되었습니다. "); return n; } public void print() { System.out.println("super명령어 사용 메서드 호출"); } public static void main(String[] args) { } } | 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 | package chap07Inheritance; public class chap07Inheritance extends chap07Inheritancefather{ //자식인 chap07Inheritance클래스가 부모인 chap07Inheritancefather클래스를 선택해서 호출함 int channel; chap07Inheritance (String model, String color, int channel) { super(); //부모클래스의 생성자 호출 this.model = model; //부모클래스 필드 호출 this.color = color; //부모클래스 필드 호출 this.channel = channel; } String name(String n) //name 메소드를 부모 클래스에서 받고 내용을 수정한다. { System.out.println("오버라이딩 된 자식"+n+"메소드가 호출 되었습니다. "); return n; } public void print() //상속받은 부모클래스의 메소드를 호출 { super.print(); } void turnOnDmb() { System.out.println("모델이름은"+model+"입니다."); System.out.println("색깔은"+color+"입니다."); System.out.println("채널은"+channel+"입니다."); } } | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | package chap07Inheritance; public class chap07InheritanceTest { public static void main(String[] args) { String n = "클래스"; chap07Inheritance chap07Inheritance = new chap07Inheritance("모델이름 1","갈색",3); chap07Inheritance.turnOnDmb(); chap07Inheritance.name(n); //오버라이딩으로 재정의된 자식 클래스의 메소드를 호출한다. chap07Inheritance.print(); //super 명령어를 사용해서 상속받은 부모클래스의 메소드를 호출 } } | cs |
-final-
final이 지정되면 초기값 설정 후, 더 이상 값을 변경할 수 없다.
또한 final 클래스는 부모 클래스가 될수 없어 자식 클래스를 만들 수 없다. 메소드도 마찬가지 이다.
-final 클래스호출시 오류-
-final 메소드 호출-
'Back-End > Java' 카테고리의 다른 글
19.04.12 API, java.lang / java.util 패키지, 해시코드 (0) | 2019.04.12 |
---|---|
19.04.10 추상 클래스 / 메소드, 인터페이스 (0) | 2019.04.10 |
19.04.08 어노테이션,Getter / Setter 메소드 (0) | 2019.04.08 |
19.04.06 Class(필드, 생성자 오버로딩) (0) | 2019.04.06 |
19.04.05 다차원 배열, 향상된 for문 (0) | 2019.04.05 |