예)
class Tv2 {
boolean power;
int channel;
void power() { power = !power;}
void channelUP() { ++channel;}
void channelDown() { --channel;}
}
class DVD {
boolean power;
void power() { power = !power;}
void play() { /*내용생략*/}
void stop() { /*내용생략*/}
void rew() { /*내용생략*/}
void ff() { /*내용생략*/}
}
class TvDVD extends Tv2 {
DVD d = new DVD();
void play() { // 이런 식으로 메소드를 만들어서 호출해야 한다!!
d.play();
}
void stop() {
d.stop();
}
void rew() {
d.rew();
}
void ff() {
d.ff();
}
}
모든 클래스의 조상
조상이 없는 클래스는 자동으로 Object클래스를 상속받는다.
작성하지 않아도 extends Object
를 컴파일러가 추가한다.
✨모든 클래스는 Object클래스가 정의하는 11개의 메소드를 상속받는다.
toString()
, equals(Object obj)
, hashCode()
...toString()
class Point2 { // extends Object
int x;
int y;
}
class Circle { // extends Object
Point2 p = new Point2(); // Circle클래스 포함
int r;
}
public class InheritenceTest {
public static void main(String[] args) {
Circle c = new Circle();
c.p.x = 2;
c.p.y = 4;
c.r = 5;
System.out.println("원의 좌표는 ("+c.p.x+", "+c.p.y+"), 반지름은 "+c.r+"이다.");
// Object클래스 내의 메소드 toString()사용하기
System.out.println("c.toString : "+c.toString());
System.out.println("c : "+c);
// c.toString 대신 c만 해도 된다!!
}
}
원의 좌표는 (2, 4), 반지름은 5이다.
c.toString : Circle@4517d9a3
c : Circle@4517d9a3