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 + "]";
	}

}


다음은 자식클래스들 Human, Cat

 

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;
	}
}


마지막으로 출력을 위한 Main

 

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);
		
	}
}


출력결과는 toString 사용했기 때문에 다소 지저분해 보일수도 있습니다. ㅠㅠ

 

Animal [food=먹다, sleep=자다]
Human [ingan=일하다, getIngan()=일하다, getFood()=먹다, getSleep()=자다, toString()=Animal [food=먹다, sleep=자다]
Cat [ya=야옹, getYa()=야옹, getFood()=먹다, getSleep()=자다, toString()=Animal [food=먹다, sleep=자다]


이렇듯 Override는 부모클래스의 객체와 메소드를 자식이 가져와서 쓰는것을 의미 합니다 !



'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