博客信息

面向对象之多态应用

发布时间:『 2019-05-25 02:52』  博客类别:java基础  阅读(624)

多态在生活中的应用(电脑主板示例)

主板的演变过程

1、首先电脑能够用起来,那么主板得处于工作状态

2、给电脑添加一个上网功能

3、给电脑添加一个声卡功能

4、上述需求用代码实现完,我们会发现,代码非常不利于扩展,维护性极差

5、这个时候,只要让主板与网卡、声卡...同时遵循一个规则(接口),那么代码的拓展性就有了显著提升。

 

小李飞刀_面向对象

 

定义接口前代码如下(main方法中的代码变动较大)

package com.javaxl.object;

/**
 * @author 小李飞刀
 * @site www.javaxl.com
 * @company
 * @create  2019-05-24 19:32
 */
public class ObjectDemo2 {
    public static void main(String[] args) {
        ComputerMain cm = new ComputerMain();
        cm.run();
        
        Voice v = new Voice();
        v.open();
        v.close();

        Show s = new Show();
        s.open();
        s.close();
    }
}

/**
 * 计算机主板
 */
class ComputerMain{
    public void run(){
        System.out.println("computer run");
    }
}

/**
 * 声卡
 */
class Voice{
    public void open(){
        System.out.println("voice open");
    }
    public void close(){
        System.out.println("voice close");
    }
}

/**
 * 显卡
 */
class Show{
    public void open(){
        System.out.println("show open");
    }
    public void close(){
        System.out.println("show close");
    }
}

定义接口后(提高了主板功能/代码的扩展性,维护起来更加方便)

package com.javaxl.object;

/**
 * @author 小李飞刀
 * @site www.javaxl.com
 * @company
 * @create  2019-05-24 19:32
 */
public class ObjectDemo2 {
    public static void main(String[] args) {
        ComputerMain cm = new ComputerMain();
        cm.run();
        cm.userPCI(new Voice());
        cm.userPCI(new Show());

//        Voice v = new Voice();
//        v.open();
//        v.close();
//
//        Show s = new Show();
//        s.open();
//        s.close();
    }
}

/**
 * 计算机主板
 */
class ComputerMain{
    public void run(){
        System.out.println("computer run");
    }

    public void userPCI(PCI pci){
        if(pci != null){
            pci.open();
            pci.close();
        }
    }
}

/**
 * 外接设备与主板定义的规则
 */
interface PCI{
    public void open();
    public void close();
}

/**
 * 声卡
 */
class Voice implements PCI{
    public void open(){
        System.out.println("voice open");
    }
    public void close(){
        System.out.println("voice close");
    }
}

/**
 * 显卡
 */
class Show implements PCI{
    public void open(){
        System.out.println("show open");
    }
    public void close(){
        System.out.println("show close");
    }
}


多态在程序上的应用(数据库连接驱动

Jdbc连接驱动包的原理图

小李飞刀_面向对象





关键字:     Java基础       面向对象       多态  

备案号:湘ICP备19000029号

Copyright © 2018-2019 javaxl晓码阁 版权所有