오보에블로그
클래스 상속과 객체 본문
728x90
상속(inheritance)
1.한 클래스의 내용을 사용하는 다른 클래스를 만들고싶다면,
class A{
}
class B extends A{//A 클래스의 내용을 사용하는 B 클래스
}
이 방법을 통해 가능하다. 여기서 클래스 A를 수퍼클래스라고 하고 클래스 B를 서브클래스 라고 한다.
2.서브클래스는 수퍼클래스의 private 멤버를 제외한 다른 모든 멤버에 접근이 가능하다.
3.서브클래스가 실행되면 자동으로 수퍼클래스가 실행된다. 이때, 실행되는 수퍼클래스의 생성자는 기본생성자이다.
4.3번에서 수퍼클래스가 실행하는 생성자를 따로 정하기 위해선 서브클래스 생성자 맨윗줄에 super()을 적어서 사용한다.
예시들을 보자.(예시1은 1~2,예시2는 3~4에 관한 내용이다.)
예시 1
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 34 35 36 37 | package inheritance; class Point{ private int x,y;//한 점을 구성하는 x,y의 좌 void set(int x, int y){ this.x = x; this.y=y; } void showPoint() { //점의 좌표 출력. System.out.println("("+x+","+y+")"); } } class ColorPoint extends Point{//Point를 상속받은 ColorPoint 선언. private String color;//점의 색. void setColor(String color) { this.color = color; } void showColorPoint() { System.out.print(color); showPoint(); } } public class ColorPointEX { public static void main(String[] args) { Point p = new Point();//Point 객체 생성. p.set(1, 2);//Point 클래스의 set() 호출. p.showPoint(); ColorPoint cp = new ColorPoint();//ColorPoint 객체생성. cp.set(3, 4);//Point 클래스의 set() 호출. cp.setColor("red");//ColorPoint 클래스의 setColor() 호출. cp.showColorPoint();// 컬러와 좌표출력. } } | cs |
예시2
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 | class Point { private int x, y; Point(){ this.x = this.y = 0; } Point(int x, int y){ this.x = x; this.y = y; } void showPoint() { System.out.println("(" + x + "," +y +")"); } } class ColorPoint extends Point { private String color; ColorPoint(int x, int y, String color){ super(x,y);//Point의 생성Point(int x, int y)호출. this.color = color; } void showColorPoint() { System.out.print(color); showPoint();//Point클래스 내의 메소드 사용. } } public class SuperEX { public static void main(String[] args) { ColorPoint cp = new ColorPoint(5,6,"blue"); cp.showColorPoint(); } } | cs |
#명품자바에센셜 교재를 통해 적었습니다.
728x90
'STEADYSTUDY > Etc' 카테고리의 다른 글
2447_별찍기 - 10 (0) | 2018.02.06 |
---|---|
자바실습 Week10 - FILE IO (0) | 2017.11.22 |
Collection & Generics (0) | 2017.11.16 |
추상클래스 (abstract class) 사용 (0) | 2017.11.08 |
week6:class (0) | 2017.10.25 |