JAVA进阶学习记录——3.接口和多态

一、接口

1.接口概念

在JAVA编程语言中是一个抽象类型,是抽象方法的集合

当一个类中的所有方法都是抽象方法的时候,就可以定义为接口

    接口的意义 规则的定义 程序的扩展性

2.接口格式和特点

    接口用关键字interface修饰 public interface 接口名 { } 接口和类之间是实现关系,不是继承关系,类实现接口用implements表示 public class 类名 implements 接口名 { } 接口的子类(实现类) 要么重写接口中的所有抽象方法 (抽象方法小括号就结束了,没有大括号) 要么是抽象类 类实现接口可以单个接口也可以多个接口,不同于继承

3.接口的成员特点

    成员变量:必须是常量,因为系统会默认加三个关键字:public、static、final 构造方法:没有,所以实现类中的super指的是默认的object类中的方法; 成员方法:只能是抽象方法,系统会默认加两个关键字:public、abstract; (只在JDK7和JDK7之前的版本中体现)

4.JDK8版本中的接口成员特点——默认方法

允许定义非抽象方法,必须使用default修饰,称为默认方法;

    默认方法定义格式
格式:public default 返回值类型 方法名(参数列表) {
          
      }
范例:public default void show() {
          
      }
    默认方法的作用: 解决接口升级的问题 接口中默认方法的注意事项: 1.默认方法不是抽象方法,所以不强制被重写。但是可以被重写,重写的时候去掉default关键字 2.public可以省略,default不能省略 3.如果实现了多个接口,多个接口中存在相同的方法声明,子类就必须对该方法进行重写

5.JDK8版本中的接口成员特点——静态方法

    静态方法的定义格式 格式:public static 返回值类型 方法名(参数列表) { } 范例:public static void show() { } 静态方法的注意事项 静态方法只能通过接口名调用,不能通过实现类名或者对象名调用 public可以省略,static不能省略

6.JDK9版本中接口成员的特点-私有方法

    私有方法的定义格式——不想被其他接口调用就可以私有化 格式1:private 返回值类型 方法名(参数列表) { } 范例1:private void show() { } 格式2:private static 返回值类型 方法名(参数列表) { } 范例2:private static void method() { } 接口中私有方法的注意事项 默认方法可以调用私有的静态方法和非静态方法 静态方法只能调用私有的静态方法

7.类和接口的关系

    类与类的关系 继承关系,只能单继承,不能多继承,但是可以多层继承; 类与接口的关系 实现关系,可以单实现,也可以多实现,还可以在继承一个类的同时实现多个接口; 接口与接口的关系 继承关系,可以单继承,也可以多继承

二、多态

1.多态概述——面向对象的第三大特征

同一个对象,在不同时可变现出来的不同形态;

2.多态的前提

    要有(继承实现)关系 要有方法重写 要有父类引用,指向子类对象

3.多态的成员访问特点

    构成方法 同继承一样,子类会通过super访问父类构造方法 成员变量 编译看父类,运行看父类 成员方法 编译看父类,运行看子类

4.多态的好处与弊端

结合成员方法的特性进行分析

    好处 提高程序的扩展性。定义方法时候,使用父类型作为参数,在使用的时候,使用具体的子类型参与操作 弊端 不能使用子类的特有成员

5.多态中的转型

    向上转型

父类引用指向子类对象就是向上转型

    向下转型 父类引用转为子类对象,需要强制转换下父类类型 格式:子类型 对象名 = (子类型)父类引用;
经验分享 程序员 微信小程序 职场和发展