자바)상속예제

leeeexxxx·2022년 5월 25일
0

java

목록 보기
10/10
post-thumbnail

문제
/*

문제 조상 클래스 phone을 만들고 이름과 기능을 설정( 핸드폰 ,지문인식기능)
IPHONE1 클래스를 만들어 이름,기능을 설정.(아이폰11,애플페이기능)
IPHONE2 클래스를 만들어 이름,기능을 설정 (아이폰12,홍채인식기능)

각 클래스의 이름과 기능을 출력한다.
단 아이폰 12 의 기능은 phone의 기능+아이폰 11의 기능을 포함해서 출력한다.
*/

package 상속2;


class Phone {
	String name = "핸드폰";

	public void function() {
		System.out.print("은 지문인식 기능을 가지고있다.");
	}

	public void print() {
		// TODO Auto-generated method stub
		System.out.print(name); // name 프린트
		function(); //각 클래스의 function메서드를 불러온다.


	}

}

class Iphone1 extends Phone {

	public Iphone1(String name) {
		// TODO Auto-generated constructor stub
		this.name = name; // Phone class  보내준다.
	}

	@Override
	public void function() {

		if (this.name.equals("아이폰12"))
			super.function(); // 아이폰 12 일때만 부모의 기능 (지문인식기능)을 함께 출력하고 아니면 오버라이딩한(재정의) 기능만 출력한다.

		System.out.print("apple pay기능을 가지고있다.");
	}

}

class Iphone2 extends Iphone1 {

	public Iphone2(String name) {
		super(name); // Iphone1 class 보내준다.
	}

	@Override
	public void function() {
		// TODO Auto-generated method stub

		super.function();
		System.out.print("홍채인식 기능을 가지고있다.\n");
	}

}

public class inherit {

	public static void main(String[] args) {

		Phone p = new Phone();
		p.print();

		System.out.println();

		Phone p1 = new Iphone1("아이폰11");
		p1.print();

		System.out.println();

		Iphone1 p2 = new Iphone2("아이폰12");
		p2.print();
	}

}

결과

0개의 댓글

관련 채용 정보