• 继承 抽象类 接口 多态


    继承

    继承:就是子类继承父类的属性和行为,使得子类对象具有与父类相同的属性、相同的行为。子类可以直接访问父类中的非私有的属性和行为。
    好处:
    1. 提高代码的复用性。
    2. 类与类之间产生了关系,是多态的前提。
    格式:
    特点 - 成员变量:
    成员变量不重名,访问是没有影响的。
    成员变量重名,访问是有影响的。
    使用格式:
     
    特点 - 成员方法:
    成员方法不重名,调用是没有影响的。
    成员方法重名,调用是有影响的,方法重写 (Override)。
    方法重写 :子类中出现与父类一模一样的方法时,会出现覆盖效果,也称为重写或者复写。声明不变,重新实现。
    特点 - 构造方法:
    1. 构造方法的名字是与类名一致的。所以子类是无法继承父类构造方法的。
    2. 构造方法的作用是初始化成员变量的。所以子类的初始化过程中,必须先执行父类的初始化动作。子类的构造方法 中默认有一个 super() ,表示调用父类的构造方法,父类成员变量初始化后,才可以给子类使用。
     
    super和this:
    super :代表父类的存储空间标识(可以理解为父亲的引用)。
    this :代表当前对象的引用(谁调用就代表谁)。
    用法:
    访问构造方法:
     
    继承得特点:
    1. Java只支持单继承,不支持多继承。
    2. Java支持多层继承(继承体系)。
    3. 子类和父类是一种相对的概念。
     

    抽象类

    我们把没有方法主体的方法称为抽象方法。Java语法规定,包含抽象方法的类就是抽象类。
    抽象方法 : 没有方法体的方法。
    抽象类:包含抽象方法的类。
    抽象方法:
    抽象类:
     
    抽象得使用:
    继承抽象类的子类必须重写父类所有的抽象方法。否则,该子类也必须声明为抽象类。最终,必须有子类实现该父
    类的抽象方法,否则,从最初的父类到最终的子类都不能创建对象,失去意义。
     

    接口

    接口,是Java语言中一种引用类型,是方法的集合,接口的内部主要就是封装了方法,包含抽象方法(JDK 7及以前),默认方法和静态方法(JDK 8),私有方法(JDK 9)。
    抽象方法:使用 abstract 关键字修饰,可以省略,没有方法体。该方法供子类实现使用
    默认方法:使用 default 修饰,不可省略,供子类调用或者子类重写。
    静态方法:使用 static 修饰,供接口直接调用。
    私有方法:使用 private 修饰,供接口中的默认方法或者静态方法调用。
     
     
     
    接口实现
    1. 必须重写接口中所有抽象方法。
    2. 继承了接口的默认方法,即可以直接调用,也可以重写
    抽象方法的使用
    默认方法的使用
     
    静态方法的使用
    私有方法的使用
    私有方法:只有默认方法可以调用。
    私有静态方法:默认方法和静态方法可以调用。
     
    接口的多实现
    而对于接口而言,一个类是可以实现多个接口的,这叫做接口的多实现。并且,一个类能继承一个父类,同时实现多个接口。
    抽象方法:
    接口中,有多个抽象方法时,实现类必须重写所有抽象方法。如果抽象方法有重名的,只需要重写一次。
     
    默认方法:
    接口中,有多个默认方法时,实现类都可继承使用。如果默认方法有重名的,必须重写一次。代码如下:
    静态方法:
    接口中,存在同名的静态方法并不会冲突,原因是只能通过各自接口名访问静态方法。
     
    优先级得问题
    当一个类,既继承一个父类,又实现若干个接口时,父类中的成员方法与接口中的默认方法重名,子类就近选择执行父类的成员方法。
     
    接口得多继承
    接口的继承使用 extends 关键字,子接口继承父接口的方法。如果父接口中的默认方法有重名的,那么子接口需要重写一次。
    注:
    接口中,无法定义成员变量,但是可以定义常量,其值不可以改变,默认使用public static final修饰。
    接口中,没有构造方法,不能创建对象。
    接口中,没有静态代码块。
     

    多态

    多态: 是指同一行为,具有多个不同表现形式。
    多态体现的格式:
     
    当使用多态方式调用方法时,首先检查父类中是否有该方法,如果没有,则编译错误;如果有,执行的是子类重写后方法。
     
    多态的好处
    实际开发的过程中,父类类型作为方法形式参数,传递子类对象给方法,进行方法的调用,更能体现出多态的扩展性与便利。
     
    不仅仅是替代,在扩展性方面,无论之后再多的子类出现,我们都不需要编写showXxxEat方法了,直接使用
    showAnimalEat都可以完成。
    所以,多态的好处,体现在,可以使程序编写的更简单,并有良好的扩展。
     
    引用类型转换 - 向上转型
    向上转型:多态本身是子类类型向父类类型向上转换的过程,这个过程是默认的。
    引用类型转换 - 向下转型
    向下转型:父类类型向子类类型向下转换的过程,这个过程是强制的。
    转型的异常
    为了避免ClassCastException的发生,Java提供了 instanceof 关键字,给引用变量做类型的校验:
     
     
    案例
    USB接口,包含开启功能、关闭功能
    笔记本类,包含运行功能、关机功能、使用USB设备功能
    鼠标类,要实现USB接口,并具备点击的方法
    键盘类,要实现USB接口,具备敲击的方法
     
     
     
     
     
     
     
     
     
     
  • 相关阅读:
    中国式沟通
    10 表连接优化
    09 优化数据访问
    07 SQL优化技术
    06 执行计划
    04 系统和对象统计信息
    03 找出性能问题
    02 key concept
    Xpert 调优
    JavaWeb_常用功能_01_文件上传
  • 原文地址:https://www.cnblogs.com/alice-bj/p/12240167.html
Copyright © 2020-2023  润新知