상속
작성일
상속
- 하나의 클래스를 전수받아서 다른 클래스를 사용하는 것.
class Novice {
private String anme;
private int hp;
public void punch() {
System.out.println("펀치!!");
}
}
위에 처럼 Novice가 있다.
class Wizard extends Novice {
private int mp;
public voide fireball() {
System.out.prinln("파이어볼@@");
}
}
위 코드를 보면 Wizard가 Novice를 상속 받아서 Novice안에있는 name과 hp필드를 사용할 수 있고
punch도 사용할수 있다.
이렇게 상속을 받을땐, 생성자를 만들때 부모타입으로 객체를 해석할 수 있다.
Novice wi = new Wizard();
Super
- 자식객체를 생성과 동시에 초기화 하려면, 부모의 생성자가 호출되어야 한다.
//생성자 호출 영역
Wizard w = new Wizard("프로토", 100, 33);
//생성자 정의 영역
class Novice {
protected String name;
protected int hp;
public Novice(String name, int hp) {
this.name = name;
this.hp = hp;
}
}
class Wizard extends Novice {
protected int mp
public Wizard(String name, int hp, int mp) {
super(name, hp); //부모 클래스 생성자 호출
this.mp = mp;
}
}
이처럼 상속받은 클래스를 생성자로 사용할때,
사용을 하려면 부모의 객체에도 생성자가 있어야하며, 이때 사용하는게 super다.