문제
/*
문제 조상 클래스 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();
}
}
결과