** 상속을 통한 클래스 생성 및 부모 클래스의 객체에 접근(호출 방법)**
class Point {
int x;
int y;
}
class Circle extends Point { // 상속을 통해 새로운 클래스 Circle 생성
int r;
}
public class InheritanceTest{
public static void main(String[] args) {
Circle c = new Circle();
c.x = 1;
c.y = 2;
c.r = 3;
System.out.println("c.x ="+c.x);
System.out.println("c.y ="+c.y);
System.out.println("c.r ="+c.r);
}
}
위의 코드는 상속을 통한 클래스 생성과 이에 따라 만들어진 객체에 접근하는 방법을 설명한 코드이다.
1. Point 클래스는 int x, int y의 맴버변수를 갖는다.
2. Circle 클래스는 Point클래스를 상속하는 클래스이며 int r을 맴버변수로 갖는 클래스이다.
3. InheritanceTest클래스에서는 Circle클래스의 객체를 먼저 생성한 후 Circle 및 Point 클래스에 접근을 하고있다.
Point클래스는 Circle클래스를 상속하고 있기 때문에 Circle클래스의 인스턴스를 생성하고, 그 인스턴스를 참조하기 위한 변수c를 통해 x,y,r에 모두 접근 할 수 있다.
class Point {
int x;
int y;
}
class Circle { // Circle 클래스는 Point 클래스를 포함(객체 생성을 통해)
Point p = new Point();
int r;
}
public class InheritanceTest{
public static void main(String[] args) {
Circle c = new Circle();
c.p.x = 1;
c.p.y = 2;
c.r = 3;
System.out.println("c.x ="+c.p.x);
System.out.println("c.y ="+c.p.y);
System.out.println("c.r ="+c.r);
}
}
Circle클래스는 Point클래스 객체 생성을 통해 Point클래스를 포함하고 있다.
따라서 InheritanceTest클래스에서 Circle 클래스의 인스턴스만 생성 후 Point클래스의 매개변수에 접근하기 위해서는 먼저 생성된 Circle클래스에 접근한 후 Circle클래스가 포함하고 있는 Point클래스의 매개변수에 접근해야한다.