zoukankan      html  css  js  c++  java
  • .Net转Java自学之路—基础巩固篇七(接口、多态)

    接口 interface implements(实现)
    当抽象类的方法都是抽象的时,这时把该类定义成接口
    接口可称为特殊的抽象类。
    特点:
      1、接口的方法都是抽象的
      2、接口不可以被实例化
      3、只有子类实现了接口中的所有方法后,该子类才可以实例化,否则该子类还是抽象类。
    格式特点:
    接口中常见的成员:1、全局常量;2、抽象方法;
    接口中的成员都有固定的修饰符:全局常量:public static final 成员方法:public abstract 修饰符可省略
    类只能单继承。接口可以被多实现,因为接口中方法没有主体。但接口与接口之间可以多继承
    接口的基本思想:
      1、接口就是对外暴露的规则。
      2、接口是功能的扩展。
      3、接口的出现降低了耦合性。
    抽象类与接口的区别:
      1、抽象类只能被单继承;接口可以被多实现
      2、抽象类中可以定义非抽象方法,直接被子类使用;接口中只有抽象方法,必须被子类实现后才能使用。
      3、抽象类中定义体系中基本共性功能;接口中定义体系中的扩展功能。
      4、接口避免了单继承的局限性。
      5、抽象类被继承,是 is a(所属)关系;接口可以被实现 是like a(像)关系。

    多态:

      一个具体的动作,具备多种体现类型。
      1、在程序中的体现:父类引用或者接口引用指向了自己子类的对象。
      2、好处:提高代码扩展性,后期的维护性。
      3、前提:
        1、类与类之间必须有继承或实现关系
        2、同常都需要覆盖
      4、弊端:
      进行多态应用时,前期是并不知道后期会有多少个子类出现,但可以使用父类引用来调用父类的方法。而后期那个子类对象出现就执行那个子类的具体方法类实现。这是程序的扩展性。但是,前期调用时,只能调用父类的方法,而不能调用具体子类的特有方法。因前期不知道具体的子类。
      父类对象指向子类类型,那么该子类就自动提升为了父类类型。例:父类 fu=new 子类() 转换后提升后的子类可用“(子类)”强转成该子类对象。
    判断类型:instanceof
      对象 instanceof 类型

    在多态中:
      成员变量:
        编译时期:看的引用型变量所属的类中是否有所调用的变量.
        运行时期:也是看引用型变量所属的类是否有调用的变量。
        简单一句话:成员变量,无论编译还是运行都看引用型变量所属的类。
        更简单的话:成员变量,编译和运行都看 等号 的左边。

      成员函数:
        编译时期:看的引用型变量所属的类中是否有调用的方法。
        运行时期:看的对象所属的类中是否有调用的方法,
        如果父子出现同名方法,会运行子类中的方法。因为方法有覆盖特性。
        简单说:对于成员函数,编译看左边,运行看右边。
        其实非静态函数,在内存有一个动态绑定机制。其实就是f指向了具体的子类对象。
        编译看到的f所属的Fu类中是否有这个方法。
        运行的时候f就绑定到了一个具体的子类对象上,
        子类对象运行时会覆盖父类中的相同想法,而运行子类的内容。

      静态函数:
        编译时期:看的是引用型变量所属的类中是否有调用的方法。
        运行时期:也是看的是引用型变量所属的类中是否有调用的方法。
        简单说: 对于静态函数,编译看左边,运行也看左边.

      整体总结:
        成员变量和静态成员:编译和运行都看左边。
        只有非静态的成员函数:编译看左边,运行看右边。

  • 相关阅读:
    线程之同步函数
    selenium破解极验验证
    数据结构--树
    数据结构--线性表
    数据结构--栈
    数据结构--队列
    代理的初步理解
    javamail+ical4j发送会议提醒
    阿里云学习之IOT物联网套件(客户端与服务端的后台数据传输)
    位图数据结构原理分析总结
  • 原文地址:https://www.cnblogs.com/zltao/p/9074940.html
Copyright © 2011-2022 走看看