Java学习笔记——接口的多实现技术

来源:互联网 发布:人工智能对设计的影响 编辑:程序博客网 时间:2024/06/06 01:30

换发动机的接口:


public interface TurnupEngineeable {public void turnupEnginee();}

加油的接口;


public interface ChangeOilable {public void changeOil();}


用一个大接口继承上述两个接口:


public interface Serviceable extends TurnupEngineeable,ChangeOilable{//接口的属性只能是公共、静态、常量public static final int A = 10;public static int B = 100;public int C = 1000;int D = 10000;//接口不能有构造方法//public Serviceable(){////}//接口的行为只能是公共、抽象方法}



飞的接口;



public interface Fliable {public void fly();}


写一个抽象的车类实现大接口:



public abstract class Car implements Serviceable{}

具体的车类继承抽象车类:

奥拓车:



public class Alto extends Car {public void changeOil() {// TODO Auto-generated method stubSystem.out.println("随便拿点地沟油就可以换了。");}public void turnupEnginee() {// TODO Auto-generated method stubSystem.out.println("拿个扳手敲敲,听声音就可以了。");}}

豪车:



public class Porsche extends Car implements Fliable{public void changeOil() {// TODO Auto-generated method stubSystem.out.println("怎么着也是香油三。");}public void turnupEnginee() {// TODO Auto-generated method stubSystem.out.println("全自动化检测,智能呀......");}public void fly() {// TODO Auto-generated method stubSystem.out.println("我跑起来有飞一般的感觉!");}}


然后有个修理工:


public class Mechanic {//构造public void service(Serviceable server){server.turnupEnginee();//修发动机server.changeOil();//换机油if(server instanceof Fliable){Fliable f = (Fliable)server;f.fly();}}}


测试类:(给修理工传不同的车,产生不同的效果)


public class TestMain {/** * @param args */public static void main(String[] args) {Mechanic fox = new Mechanic();Alto yourCar = new Alto();Porsche myCar = new Porsche();        System.out.println("看看你的破车:\r\n");fox.service(yourCar);System.out.println("\r\n");System.out.println("看看我的豪车:\r\n");fox.service(myCar);}}


效果图:

看看你的破车:


拿个扳手敲敲,听声音就可以了。
随便拿点地沟油就可以换了。




看看我的豪车:


全自动化检测,智能呀......
怎么着也是香油三。
我跑起来有飞一般的感觉!




原创粉丝点击