2016년 8월 3일 수요일

Java 1-8 클래스 class 상속 오버라이드


public class Bus extends Car {


int count;

// 재정의 = 오버라이드
@Override
void printInfo() {
// 부모의 기능이나 변수를 이용할때 super를 쓴다.
super.printInfo();
System.out.println("버스");
}

}
-----------------------------------------------------------------------

public class Car {
float oil;
void oilCheck(){
System.out.println("남은 기름 : " + oil);
}
float oilRefuel(float oil){
this.oil += oil;
return this.oil;
}
void printInfo() {
System.out.println("자동차");
}

}
---------------------------------------------------------------------------

public class Main {

public static void main(String[] args) {
// 자식객체를 만들 때 부모객체도 쌍으로 같이 만들어진다.
Bus tourBus = new Bus();
// Car라는 부모가 가진 oil변수를 이용가능
tourBus.oil = 10F;
tourBus.count = 13;
tourBus.oilCheck();
tourBus.printInfo();
// 다형성 - 하나의 객체가 다양한 형태를 띄는 개념
// 자식의 객체를 부모의 그릇에 담는 상황. ???
Car car = tourBus;
// 자식의 변수와 기능이 사용 불가능해진다.
// car.count = 10; // error
car.oil = 15F;
car.printInfo();
System.out.println(tourBus.oil + "," + car.oil);
// 다형성의 장점
// 1. 부모의 배열을 이용해서 자식들의 객체를 한곳에 모을 수 있다.
// (예) Car배열에 Bus,Truck등등 넣을 수 있지
// 2. 매개변수나 리턴시 부모의 자료타입을 지정해서 다양하게 주고 받는게 가능하다.
// object 그릇은 모든걸 다 받을 수 있다.


}

}

댓글 없음:

댓글 쓰기