zoukankan      html  css  js  c++  java
  • java全栈day10--接口 多态

    接口的概念
    接口是功能的集合,同样可看做是一种数据类型,是比抽象类更为抽象的”类”。
    接口只描述所应该具备的方法,并没有具体实现,具体的实现由接口的实现类(相当于接口的子类)来完成。这样将功能的定义与实现分离,优化了程序设计。
    请记住:一切事物均有功能,即一切事物均有接口。

    接口的定义与定义类的class不同,接口定义时需要使用interface关键字

    如:

    interface Demo { ///定义一个名称为Demo的接口。
      public abstract void lijun1();
      public abstract void lijun2();
    }

    定义子类去覆盖接口中的方法。类与接口之间的关系是 实现。通过 关键字 implements
    class DemoImpl implements Demo { //子类实现Demo接口。
      //重写接口中的方法。
      public void lijun1(){}
      public void lijun2(){}
    }

    多态调用的三种格式
    * A:多态的定义格式:
    * 就是父类的引用变量指向子类对象
    父类类型 变量名 = new 子类类型();
    变量名.方法名();

    * B: 普通类多态定义的格式
    父类 变量名 = new 子类();
    举例:
    class Fu {}
    class Zi extends Fu {}
    //类的多态使用
    Fu f = new Zi();
    * C: 抽象类多态定义格式
    抽象类 变量名 = new 抽象类子类();
    举例:
    abstract class Fu {
    public abstract void method();
    }
    class Zi extends Fu {
    public void method(){
    System.out.println(“重写父类抽象方法”);
    }
    }
    //类的多态使用
    Fu fu= new Zi();
    D: 接口多态定义的格式
    接口 变量名 = new 接口实现类();
    如: interface Fu {
    public abstract void method();
    }
    class Zi implements Fu {
    public void method(){
    System.out.println(“重写接口抽象方法”);
    }
    }
    //接口的多态使用
    Fu fu = new Zi();

    案例分析
    * 阶段一:
    使用笔记本,笔记本有运行功能,需要笔记本对象来运行这个功能
    * 阶段二:
    想使用一个鼠标,又有一个功能使用鼠标,并多了一个鼠标对象。
    * 阶段三:
    还想使用一个键盘 ,又要多一个功能和一个对象
    * 问题:每多一个功能就需要在笔记本对象中定义一个方法,不爽,程序扩展性极差。
    降低鼠标、键盘等外围设备和笔记本电脑的耦合性。

  • 相关阅读:
    HDU 2121 Ice_cream’s world II 不定根最小树形图
    POJ 3164 Command Network 最小树形图
    POJ 3723 Conscription 最小生成树
    UVA 1175 Ladies' Choice 稳定婚姻问题
    BZOJ 2753 [SCOI2012] 滑雪和时间胶囊 最小生成树
    BZOJ 1854: [Scoi2010]游戏 无向图判环
    HDU 3974 Assign the task 暴力/线段树
    Codeforces Round #302 (Div. 2) D. Destroying Roads 最短路
    uoj 67 新年的毒瘤 割点
    蓝桥
  • 原文地址:https://www.cnblogs.com/lijun6/p/9457936.html
Copyright © 2011-2022 走看看