JavaSE基础之接口

接口

介绍

  • 当一个类中的所有方法都是抽象方法的时候,我们就可以将其定义为接口。
  • 接口也是一种引用数据类型,比抽象类还要抽象。

意义

  • 规则的定义;程序的扩展性。
  • 定义——使用 关键字 interface 来定义。
    public interface 接口名 {}
  • 接口不能实例化;接口和类之间是实现关系,通过 implements 关键字表示。
    public class 类名 implements 接口名 {}

注意

  • 接口的子类(实现类),要么重写接口中的所有抽象方法;要么是抽象类。

  • 接口和实现类之间的关系可以是单实现,也可以是多实现。

  • 静态数据可以直接被类名调用。

  • 接口中的成员变量只能是常量,系统会默认加入三个关键字,public static final

  • 接口中没有构造方法。

  • 接口中的成员方法只能是抽象方法,系统会默认加入两个关键字 public abstract

接口中默认方法的注意事项

  • 默认方法不是抽象方法,所以不强制被重写,但是可以被重写,重写的时候去掉 default 关键字。
  • public 可以省略,default 不能省略。
  • 如果实现了多个接口,多个接口中存在相同的方法声明,子类就必须对该方法进行重写。

接口中静态方法的注意事项

  • 静态方法只能通过接口名调用,不能通过实现类名或者对象名调用。
  • public 可以省略,static 不能省略。

接口的使用思路

  • 如果发现一个类中所有的方法都是抽象方法,那么就可以将该类,改为一个接口。
  • 涉及到了接口大面积更新方法,而不想去修改每一个实现类,就可以将更新的方法,定义为带有方法体的默认方法。
  • 希望默认方法调用的更加简洁,可以考虑设计为 static 静态方法(需要去掉default关键字)。
  • 默认方法中出现了重复代码,可以考虑抽取出一个私有方法(需要去掉default关键字)。

类和接口的关系

类和类的关系

继承关系,只能单继承,但是可以多层继承。

类和接口的关系

实现关系,可以单实现,也可以多实现,还可以在继承一个类的同时实现多个接口。

接口和接口的关系

继承关系,可以单继承,也可以多继承。

多态

概述

同一个对象,在不同时刻表现出来的不同形态。

多态的前提和体现

有继承/实现关系;有方法重写;有父类引用指向子类对象。

多态成员访问特点

成员变量

编译看左边(父类),运行看左边(父类)。

成员方法

编译看左边(父类),运行看右边(子类)。

多态的好处和弊端

好处

提高了程序的扩展性。

具体体现:定义方法的时候,使用父类型作为参数,该方法就可以接收这个父类的任意子类对象。

弊端

不能使用子类特有的功能。

多态类型转换

向上转型

其实就是自动类型转换,是父类引用指向子类对象.

向下转型

其实就是强制类型转换,是把父类引用转换为子类对象.

目标类型 变量名 = (目标类型)待转数据;

instanceof运算符

语法
boolean b = 变量 instanceof 类型;
规则

判断"变量"是否是指定"类型"的变量;
如果是,则返回true,如果不是,返回false。

你可能感兴趣的:(Java)