继承+super+final的例子
设计类:
手机:
数据:屏幕尺寸,型号名
功能:打电话,发短信
安卓手机
数据:处理器,屏幕尺寸,型号名
功能:打电话,发短信,root系统
苹果手机
数据:处理器,屏幕尺寸 ,型号名
功能:打电话,发短信,指纹识别,imessage(其他类不能访问)
需求:
a)要求安卓手机,苹果手机都能使用到手机里的提供的数据和功能
b)并且苹果手机在使用发短信的功能的时候,优先使用手机的发短信,如果发送不了,则使用imessage发送短信。
c)要求在创建苹果手机的时候,可以初始化处理器信息,也可以初始化处理器加屏幕尺寸信息。
d)要求每个手机的屏幕尺寸一旦确定就不能再更改
e) 手机的打电话功能已经完善不能覆盖(重写)这个功能
f)苹果手机的类已经完善不允许其他类继承。
public class Test3 {
public static void main(String[] args) {
Phone c1=new AndroidPhone();
c1.callPhone();
c1.sendMessage("11");
Phone c2=new Applephone2("intel",5);
c2.callPhone();
c2.sendMessage("11");
}
}
class Phone{
String name;
final double size;
public Phone(){
this.size=5;
}
public Phone(double size){
super();
if(size>=4&&size<=7){
this.size=size;
}else{
this.size=5;
System.out.println("尺寸不正确");
}
}
public final void callPhone(){
System.out.println("手机可以打电话");
}
public boolean sendMessage(String num){
int len=num==null?0:num.length();
if(len==11){
System.out.println("使用手机短信发送成功");
return true;
}
return false;
}
}
class AndroidPhone extends Phone{
String cpu;
public void Root(){
System.out.println("安卓手机可以root系统");
}
}
final class Applephone2 extends Phone{
String cpu;
public Applephone2(String cpu) {
super();
this.cpu = cpu;
}
public Applephone2(String cpu,double size) {
super(size);//使用Phone(double size) 进行初始化
this.cpu = cpu;
}
public boolean sendMessage(String num) {
//使用手机发短信-失败-使用imessage
if(!super.sendMessage(num)){
this.imessage(num);
}
return true;
}
private void imessage(String num) {
System.out.println("imessage发送成功");
}
}