JavaSE基础自学-----多态--接口型引用(代码简单示例)

示例1-----主板与配件连接

主板示例:
主板上有许多配件:声卡,显卡,网卡等等
主板上已有特定的接口,如果配件无法满足该接口将无法插入主板

思想:定义一个PCI的接口,让声卡,网卡这些配件想要连接主板,就需要实现PCI接口
然后主板就可以用这个PCI接口来运行配件…(接口型引用指向自己的对象)

接口型引用指向子类对象.提搞功能拓展性

//PCI接口
interface PCI{
     void connect(); //PIC连接主板功能
}

//主板类
class MainBoard{

    public void run(){
        System.out.println("主板运行");
    }

    public void usePCISlot(PCI parts){ //主板使用PCI插槽..
                                  //PCI parts=new NetCard : PCI接口引用指向配件对象                              
        if(parts!=null){
        parts.connect();      //如果part不为空,则part执行连接主板
        }
    }
}

/*
* 创建一个声卡类,需要实现PCI接口,才能连接主板
 */
class SoundCard implements PCI{
    public void connect(){
        System.out.println("声卡_连接主板");
    }
}

/*
 * 创建一个网卡类,想要连接主板,就需要实现PCI接口
 */
class NetCard implements PCI{
    public void connect(){
        System.out.println("网卡_连接主板");
    }
}

/*
*需要什么配件,就创建什么配件的类
* */

public class DEMO {
    public static void main(String[] args) {
        MainBoard m1=new MainBoard();  //创建一个主板对象
        m1.run();                     //主板运行
        m1.uesPCI(new SoundCard()); //插入声卡
        m1.uesPCI(new NetCard()); //插入声卡
    }
}


示例2----如果快捷切换连接数据库方式

  • 数据库: 连接,修改,删除 三个步骤
  • 数据库的连接方式有两种: JDBC / Hibernate
  • 目的:快捷切换连接数据库方式
  • 思想:连接方式虽然不同,但是修改和删除这两个功能相同
    所以可以将这两个功能提升为接口,让这两种连接方式去实现此接口
    这样可以直接用接口引用创建子类对象(修改数据库方法接口 x=new JDBC方式//Hibernate方式),
    为了以后更方便的切换连接方式去修改数据库

代码演示----

//修改数据库方法-接口
interface useDatabase{
    public void add();
    public void delete();
}

//JDBC方式连接修改数据库
class JDBC implements useDatabase{
    public void add(){
       System.out.println("JDBC--修改");

    }
    public void delete(){
        System.out.println("JDBC--删除");
    }
}

//Hibernate方式连接修改数据库
class  Hibernate implements  useDatabase{
    public void add(){
        System.out.println("Hibernate--修改");

    }
    public void delete(){
        System.out.println("Hibernate--删除");
    }
}


public class DEMO {
    public static void main(String[] args) {
        /*
         * 如果后期需要Hibernate连接数据库
         * 只需要把new 后面的子类名更改为Hibernate就行了
         * 大大提高了切换效率
         * */
        useDatabase use=new JDBC();  //接口型引用指向子类对象
        use.add();
        use.delete();

        
        /*    JDBC j=new JDBC();
              j.add();
             j.delete();

         * 以上代码可以看出..直接创建JDBC对象,用JDBC方式去连接数据库
         * 假如后面需要切换用 Hibernate 去连接数据库
         * 则需要重新创建Hibernate 对象连接数据库,重新用新对象一个个调用方法
         * 这样做非常的麻烦,
         * 这时使用多态方式则方便许多
         * */
    }
}

你可能感兴趣的:(Java,基础)