zoukankan      html  css  js  c++  java
  • Java 接口。实现。多态

    Java 的接口 

       public    interface   类名

    接口是Java方法的合集,用于给不同的类实现同名的方法,

    接口是一个只有抽象方法的抽象类,

    1、接口中可以定义变量,但是变量必须有固定的修饰符修饰,public static final 所以接口中的变量也称之为常量,其值不能改变。后面我们会讲解staticfinal关键字

    2、接口中可以定义方法,方法也有固定的修饰符,public abstract

    3、接口不可以创建对象。

    4子类必须覆盖掉接口中所有的抽象方法后,子类才可以实例化。否则子类是一个抽象类。

    接口的子集 使用关键词implements来继承,也叫做实现。

    一个普通类只能单继承(接口允许多继承)但是允许多实现,

    举例:我们都知道电脑上留有很多个插口,而这些插口可以插入相应的设备,这些设备为什么能插在上面呢?主要原因是这些设备在生产的时候符合了这个插口的使用规则,否则将无法插入接口中,更无法使用。发现这个插口的出现让我们使用更多的设备。

    总结:接口在开发中的它好处

    1、接口的出现扩展了功能。

    2、接口其实就是暴漏出来的规则。

    3、接口的出现降低了耦合性,即设备与设备之间实现了解耦。

    接口的出现方便后期使用和维护,一方是在使用接口(如电脑),一方在实现接口(插在插口上的设备)。例如:笔记本使用这个规则(接口),电脑外围设备实现这个规则(接口)。

    总结接口和抽象类的区别:

    相同点:

    都位于继承的顶端,用于被其他类实现或继承;

    都不能直接实例化对象;

    l 都可以包含抽象方法,其子类都必须覆写这些抽象方法;

    区别:

    抽象类为部分方法提供实现,避免子类重复实现这些方法,提高代码重用性;接口只能包含抽象方法;

    一个类只能继承一个直接父类(可能是抽象类),却可以实现多个接口;(接口弥补了Java的单继承)

    l 抽象类是这个事物中应该具备的内容, 继承体系是一种 is..a关系

    l 接口是这个事物中的额外内容,继承体系是一种 like..a关系

    二者的选用:

    优先选用接口,尽量少用抽象类;

    需要定义子类的行为,又要为子类提供共性功能时才选用抽象类;

    多态 

    多态体现为父类引用变量可以指向子类对象。

    多态的前提是必须有子父类关系或者类实现接口关系,否则无法完成多态。

    在使用多态后的父类引用变量调用方法时,会调用子类重写后的方法。

    l 多态成员变量

    当子父类中出现同名的成员变量时,多态调用该变量时:

    编译时期:参考的是引用型变量所属的类中是否有被调用的成员变量。没有,编译失败。

    运行时期:也是调用引用型变量所属的类中的成员变量。

    简单记:编译和运行都参考等号的左边。编译运行看左边。

    l 多态成员方法

    编译时期:参考引用变量所属的类,如果类中没有调用的方法,编译失败。

    运行时期:参考引用变量所指的对象所属的类,并运行对象所属类中的成员方法。

    简而言之:编译看左边,运行看右边。

    1.1 instanceof关键字

  • 相关阅读:
    初探linux子系统集之led子系统(一)
    金融大数据分析从认知到实践(第1辑)(套装共3册)
    Blender权威指南
    零基础学Python
    中文版Photoshop CC图像处理与设计
    21天学通C++(第4版)
    Python应用开发实战
    电脑办公实战从入门到精通(超值版)
    Windows 10从新手到高手
    21天学通C语言(第7版)
  • 原文地址:https://www.cnblogs.com/marswenze/p/13255540.html
Copyright © 2011-2022 走看看