Ex -1)
class Point{
private int x,y; //한 점을 구성하는 x,y 좌표
public void set (int x,int y){
this.x =x;
this.y =y;
}
public void showPoint() {
//점의 좌표 출력
System.out.println("("+ x +"," + y + ")");
}
}
class ColorPoint extends Point{
//Point를 상속받은 ColorPoint 선언
private String color; //점의 색깔
public void setColor(String color) {
this.color= color;
}
public void showColorPoint(){ //컬러 점의 좌표출력
System.out.print(color);
showPoint(); // Point클래스의 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 =. ew ColorPoint();// ColorPoint 객체생성
cp.set(3,4); // Point 클래스의 set() 호출
cp.setColor("red"); //ColorPoint 클래스의 setColor()호출
cp.showColorPoint(); // 컬러와 좌표 출력
}
}
--> 결과
(1,2)
red(3,4)
상속에서 일차적으로 이해해야 하는것은 바로 서브클래스 객체의 모양이다. 다음은 Point 클래스의 객체와 ColorPoint클래스의 객체를 생성하는코드이다
Point p = new Point();
ColorPoint cp = new ColorPoint(); // 서브 클래스 객체생성
이 코드를 보면 생성된 객체 p와cp를 보여주는데 , 이 둘은 별개의 객체이다.
객체 p 는 Point 클래스의 멤버만 가지고, cp는 Point 클래스와 Color Point 클래ㅑ스의 멤버를 모두 가진다.
상속은 바로 cp객체 처럼 슈퍼 클래스의 멤버와 서브 클래스의 멤버를 모두 갖고 탄생하게 하는것이다!