package ch06;
import ch05.sub.*;
public class ColorCar extends Car
{
/*
* 메서드 오버라이딩 : 오버로딩과 다르다
* 계승에서 상위클래스의 멤버함수의 이름,인자의 수까지
* 완벽히 똑같은 이름을 하위클래스에서 구현할 경우
* 상위클래스의 멤버함수는 은닉화되어 힘을 읽어버리며,
* 하위클래스의 멤버함수가 그 함수를 대신하게 된다.
* (상위클래스의 멤버함수의 재정의)
* */
public ColorCar()
{
// TODO 자동 생성된 생성자 스텁
//super();
}
//아래의 print는 상위클래스의 print와 이름은 같지만,
//인자의 수가 다르므로 멤버함수의 오버로딩에 해당.
public void print(String message)
{
System.out.println(message);
}
//상위클래스의 print메서드의 오버라이딩
public void print()
{
// TODO 자동 생성된 메소드 스텁
//super는 상위클래스를 가르키는 지시어이다.
//따라서 아래와 같이 super.print()를 지정하면,
//상위 클ㄹ래스의 print()가 호출된다.
//super는 보통 지금처럼 오버라이딩시
//하위에서 상위클래스의 오버라이딩된 원본 메서드를 호출할때 사용.
super.print();
System.out.println("Hello Color Car()");
}
public static void main(String[] args)
{
ColorCar colorCar = new ColorCar();
colorCar.print("aa");
colorCar.print();
}
}