关于继承,类,抽象类,接口的实际操作
/*
* 抽象类:为子类提供公有方法外,还定义了子类必须实现的方法
*/
public abstract class Phone { 定义 父类
public void call(int tel){//为子类提供公有方法外
System.out.println("打电话给"+tel);
}
public void getcall(String msg){
System.out.println("用"+msg+"接电话");
}
public abstract void sendmessage(String msg);//还定义了子类必须实现的方法
}
/*
* 接口里定义的方法都是抽象方法
* 接口里定义的变量都是常量(public static final)
* 接口是多继承,类是单继承
* 接口定义子类的方法,不具体实现
*/
public interface IGame {//定义接口IGame
// public static final int AB_c=3;
public abstract void playgame();//定义方法,不具体实现
}
public class SmartPhone extends Phone implements IGame { 定义子类SmartPhone继承父类Phone同时拥有接口 IGame
public void playgame(){//接口IGame里定义的抽象方法在SmartPhone类里具体实现
System.out.println("智能机玩手游游戏");
}
@Override
public void sendmessage(String msg) {//子类实现的父类定义必须实现的方法
System.out.println("能发短信");
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Phone sphone=new SmartPhone();//父类实例化子类 自类实例向上转性
Phone cphone=new Cellphone();
sphone.call(119);//实例化对象调用方法并赋值
sphone.getcall("智能机");
SmartPhone sphone1=(SmartPhone)sphone;//把已经向上转型的子类实例强制向下转型
sphone1.playgame();
sphone.sendmessage("智能机");
cphone.sendmessage("这里");
}
}