본문 바로가기

Java

[Eclipse] Java Extends(상속)

Java Extends(상속) 란?

상속은 부모가 자식에게 물려주는 행위다.
객체 지향 프로그램에서도 부모(상위) 클래스의 멤버를 자식(하위) 클래스에 물려주어 자식 클래스가 갖고 있는 것처럼 사용할 수 있다.

※두가지 이상의 클래스를 한번에 상속받는건 불가능하다.

extends 기본)

public class (자식클래스) extends (부모클래스) { 

}

 

활용 예제)

 

Phone, HandPhone, AndroidPhone 클래스를 생성하여 

 

test.mypac 패키지

HandPhone(자식) > Phone(부모)

AndroidPhone(자식) > HandPhone(부모)

관계를 형성하였다.

 

Phone 클래스

 

HandPhone 클래스

HandPhone 클래스는 Phone 클래스를 부모로 상속받는 관계이다.

 

 

AndroidPhone 클래스

 

해당 클래스들을 이용하여 MainClass01 클래스에 다른 각각의 클래스들의 메소드를 호출해보았다.

 

MainClass01 클래스

 

Console 출력창

실행 결과 HandPhone 클래스를 호출하여 객체를 생성했더니

HandPhone의 생성자와 Phone의 생성자가 같이 호출되는 모습을 볼수있다.

각각의 메소드들에서 다음과 같이 print 하였다.

p1.call() // Phone 클래스의 메소드

p1.mobileCall() // HandPhone 클래스의 메소드

p1.takePicture() // HandPhone 클래스의 메소드 

 

 

MainClass02 클래스

다음은 MainClass02 에서의 HandPhone 객체를 생성해서 나온 참조값을 HandPhone type 지역변수 p1에 담고

 

HandPhone 객체를 생성해서 나온 참조값을 Phone type 지역변수 p2에 담았다.

 

HandPhone 객체여도 부모클래스가 Phone 클래스 이기때문에 Phone 타입으로 담을수있다.

 

마찬가지로 Object 타입은 기본 디폴트로 갖고있는 클래스이기 때문에 담을수가 있는것이다.

 

 

 

MainClass03 클래스

MainClass03 에선 p1에 HandPhone 객체를 생성하여 참조값을 대입했고

그 참조값을 Phone 객체의 p2에 대입한 모습이다.

Object 객체의 p3에 HandPhone 객체의 참조값인 p1을 대입하여 오류없이 작성된다.

 

 

 

 

MainClass04 클래스

MainClass04 에선 Object 타입의 p3에 HandPhone의 참조값을 대입하고

그 참조값을 Phone 타입에 대입하려면 casting 연산자가 필요하여 옆에 (Phone) 타입으로 적었다.

마찬가지로 HandPhone 타입의 p1에 p3를 대입하려면 casting 연산자가 필요하다.

 

 

 

 

MainClass05 클래스

MainClass05 에선 AndroidPhone 객체를 생성하여 각 상속받는 클래스들의 메소드를 사용하였다.

 

 

 

 

'Java' 카테고리의 다른 글

[Eclipse] Java Inner Class(내부 클래스)  (0) 2023.05.03
[Eclipse] Java Abstract Class(추상 클래스)  (0) 2023.05.03
[Eclipse] Java Random nextInt  (0) 2023.05.01
[Eclipse] Java Scanner  (0) 2023.05.01
[Eclipse] Java for문, 확장 for문  (0) 2023.05.01