IS-A 관계

class Animal {
    public String whatAmI() {
        return "I belong to Animal class";
    }
}

class Dog extends Animal {
    public void aboutMe() {
        System.out.println("I am a Dog class and " + whatAmI());
    }
}

HAS-A 관계

class Legs {

    public String howManyLegs() {
        return "I have four legs";
    }
}

class Dog {
    Legs legs = new Legs();

    public void aboutMe() {
        System.out.println("I am a Dog class and " + legs.howManyLegs());
    }
}

상속을 코드 재사용의 개념으로 이해하면 안됩니다.