extends
예약어 사용class B extends A {
...
}
//예시
class Animal {
String name;
public void cry() {
System.out.println(name + "is crying.");
}
}
class Dog extends Animal { //상속의 형식
Dog(String name) {
this.name = name;
}
public void swim() {
System.out.println(name + "is swimming.");
}
}
public class Main {
public static void main(String[] args) {
Dog dog = new Dog("코코");
dog.cry();
dog.swim();
Animal dog2 = new Dog("미미");
dog2.cry();
dog2.swim(); /* Compile Error. Animal
클래스로 인스턴스가 생생되어서
Dog클래스에 있는 생성자는 호출 못함.*/
}
}
super
: 참조변수. 부모 클래스의 멤버와 자식 클래스의 멤버 이름이 같을 경우 사용하여 부모 클래스의 멤버에 접근 가능super()
: 부모 클래스의 생성자를 호출할 때 사용public class Animal {
String name;
public void cry() {
System.out.println(name + "is crying");
}
}
class Dog extends Animal {
Dog(String name) {
this.name = name;
}
@Override
public void cry() {
System.out.println(name + "is barking");
}
}
overloading | overriding |
---|---|
기존에 없던 새로운 메소드 정의 | 상속 받은 메소드 내용 변경 |
박은종, 『Do it! 자바 프로그래밍 입문』, 이지퍼블리싱(주)