본문 바로가기

JAVA 부족한 부분 공부

상속, 오버라이딩

부모 타입으로 자식 객체를 참조 할 수 있다.

==> 부모가 가지고 있는 메서드만 사용 할 수 있다.

 

public class Car{

public void run(){

System.out.println("Carrun메소드");

}

}

 

public class Bus extends Car{

public void ppangppang(){

System.out.println("빵빵.");

}

}

 

Car c = new Bus(); // Bus객체가 생성되지만 부모 타입이기 때문에 부모 클래스의 메소드만 사용가능

c.run(); 사용가능 ==> "Carrun메소드" 출력

그러나 c.ppangppang(); 은 사용불가능

 

=============================================================

 

class Car {

public void run() {

System.out.println("Carrun메소드");

}

}

 

class Bus extends Car {

 

public void run() {

System.out.println("Busrun메소드");

}

 

public void ppangppang() {

System.out.println("빵빵.");

}

}

 

Car c = new Bus();

c.run(); 결과값은 "Busrun메소드" 가 출력된다. (오버라이딩)

==> Bus(자식 클래스)의 run() 메소드가 실행된다.

==> if) Bus(자식 클래스)에서 run() 메소드가 오버라이딩 되어있지 않으면  Car(부모 클래스)의 run()이 실행

여전히 c.ppangppang(); 은 사용불가능