Override 오버라이드
Override 는 부모(슈퍼) 클래스에 존재하는 필드나 메소드를 자식(서브) 클래스에서 재정의하여
사용할 수 있는것을 말합니다.
바로 예제
일단 Animal Class (부모클래스)
public class Animal { // 부모 클래스이다.
private String food; // 음식
private String sleep; // 잔다
// Construct / Set, Get / toString
public Animal(String food, String sleep) {
super(); // 부모클래스의 메소드값을 가져오기 위해서 선언
this.food = food;
this.sleep = sleep;
}
public String getFood() {
return food;
}
public void setFood(String food) {
this.food = food;
}
public String getSleep() {
return sleep;
}
public void setSleep(String sleep) {
this.sleep = sleep;
}
@Override
public String toString() {
return "Animal [food=" + food + ", sleep=" + sleep + "]";
}
}
public class Cat extends Animal { // Cat은 Animal을 상속받는다.
private String ya; // Cat만의 속성
public Cat(String food, String sleep, String ya) { // 하지만 Animal의 자식클래스이기 때문에 food와 sleep도 가져와서 사용이 가능하다
super(food, sleep); // 위에 언급 했듯이 부모클래스의 객체를 가져와서 사용한다
this.ya = ya;
}
}
public class Human extends Animal { // 마찬가지 입니다
private String ingan;
public Human(String food, String sleep, String ingan) {
super(food, sleep);
this.ingan = ingan;
}
}
public class Test {
public static void main(String[] args) {
Animal a = new Animal("먹다", "자다");
System.out.println(a);
Human h =new Human("먹다", "자다", "일하다");
System.out.println(h);
Cat c = new Cat("먹다", "자다", "야옹");
System.out.println(c);
}
}
Animal [food=먹다, sleep=자다]
Human [ingan=일하다, getIngan()=일하다, getFood()=먹다, getSleep()=자다, toString()=Animal [food=먹다, sleep=자다]
Cat [ya=야옹, getYa()=야옹, getFood()=먹다, getSleep()=자다, toString()=Animal [food=먹다, sleep=자다]
'JAVA > java' 카테고리의 다른 글
Override을 가지고 간단한 게임(?)만들기 (0) | 2017.09.07 |
---|---|
객체지향(2) (0) | 2017.09.06 |
객체지향(1) (0) | 2017.09.06 |
Method (0) | 2017.09.05 |
Array(2) array & for & for-each (0) | 2017.09.05 |