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版本中接口成员的特点-私有方法
  • 私有方法的定义格式——不想被其他接口调用就可以私有化

    格式1private 返回值类型 方法名(参数列表) {   }
    范例1private void show() {   }
    
    格式2private static 返回值类型 方法名(参数列表) {   }
    范例2private static void method() {   }
    
  • 接口中私有方法的注意事项

    ​ 默认方法可以调用私有的静态方法和非静态方法

    ​ 静态方法只能调用私有的静态方法

7.类和接口的关系

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

二、多态

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

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

2.多态的前提
  • 要有(继承\实现)关系
  • 要有方法重写
  • 要有父类引用,指向子类对象
3.多态的成员访问特点
  • 构成方法

    • 同继承一样,子类会通过super访问父类构造方法
  • 成员变量

    • 编译看父类,运行看父类
  • 成员方法

    • 编译看父类,运行看子类
4.多态的好处与弊端

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

  • 好处

    ​ 提高程序的扩展性。定义方法时候,使用父类型作为参数,在使用的时候,使用具体的子类型参与操作

  • 弊端

    ​ 不能使用子类的特有成员

5.多态中的转型
  • 向上转型

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

  • 向下转型
    • 父类引用转为子类对象,需要强制转换下父类类型
    • 格式:子类型 对象名 = (子类型)父类引用;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

聪明的墨菲特i

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值