先建立一个abstract package Abstract; public abstract class USB { public abstract void start();//usb设备的启动方法,没有实现 public abstract void stop();//usb设备的停止方法,没有实现 }
建立一个子类 继承父类 package Abstract; public class Toshiha extends USB { @Override public void start() { System.out.println("东芝优盘启动"); } @Override public void stop() { System.out.println("东芝优盘停止"); } }
}
建立一个子类 继承父类
package Abstract; public class SanDisk extends USB { @Override public void start() { System.out.println("闪迪优盘启动"); } @Override public void stop() { System.out.println("闪迪优盘停止"); } }
里式代换原则 通过父类引用子类对象 package Abstract; public class MainBoard { public void insert(USB usb){ usb.start();//里式代换原则 } public void outside(USB usb){ usb.stop(); } }
测试内容 package Abstract; public class Text { /* class QiCai extends USB{ @Override public void start() { System.out.println("七彩优盘启动"); } @Override public void stop() { System.out.println("七彩优盘停止"); } }*/ public static void main(String[]args){ MainBoard mb=new MainBoard(); Toshiha tsb=new Toshiha(); mb.insert(tsb); SanDisk sd=new SanDisk(); mb.insert(sd); USB qc=new USB(){ @Override public void start() { System.out.println("七彩优盘启动"); } @Override public void stop() { System.out.println("七彩优盘停止"); } }; USB sd2=new USB(){//匿名内部内 @Override public void start() { System.out.println("闪迪优盘启动"); } @Override public void stop() { System.out.println("闪迪优盘停止"); } }; mb.insert(qc); mb.outside(sd2); } }