13-接口、多态

接口

接口可以视为一种标准。
是一种引用数据类型
格式:

public interface 接口名 {

}

接口的实现类

用类实现接口,并重写接口中所有抽象方法的方式称为实现

public class InterfaceImpl implements Interface {
	@Override
	//重写抽象方法
}

注意事项:
接口的实现类必须重写接口的所有抽象方法,否则就是一个抽象类

多实现

一个类可以实现多个接口

public class InterfaceImpl implements Interface1,Interface2 {
	@Override
	//重写抽象方法
}

常量

接口中的成员变量只能是常量,格式为

public static final 数据类型 常量名 = 数值;

注意事项:
常量名名称必须全部大写,用下划线连接
常量必须赋值

抽象方法

格式:

[public] [static] 返回值类型 方法名称();

注意事项:
如果实现类中实现的多个接口有重名的抽象方法,只重写一次

默认方法

作用:解决类升级时候,添加抽象方法导致实现类失效的问题

[public] default 返回值类型 方法名称() {方法体}

注意事项:
用对象.默认方法的方式调用
如果实现类中实现的多个接口有重名的默认方法,必须重写

静态方法

public static 返回值类型 方法名称() {方法体}

注意事项:
只能通过接口名.静态方法的方式调用

私有方法

只允许本接口调用的方法称为私有方法
普通私有方法:

private 返回值类型 方法名称() {方法体}

静态私有方法:

private static 返回值类型 方法名称() {方法体}

多继承

接口可以多继承

public interface Interface extends Interface1,Interface2 {

}

注意事项

接口没有构造方法(接口不能new对象)
如果父类的默认方法和接口的默认方法重名,优先用父类的默认方法
接口没有静态代码块

多态

以动物为例,动物下面有子类——猫,一只猫可以说是猫,也可以说成是动物、这种可以以不同类型描述一个对象的特性称为多态

前提

1、继承关系/实现关系
2、方法重写
3、父类引用创建子类对象

格式

父类名/接口名 对象名 = new 子类名/实现类名();

使用

访问成员变量

访问时,只能访问父类的成员变量

访问成员方法

访问时,访问子类的成员方法

向上转型

将子类对象转为父类对象的过程称为向上转型
其实就是上述多态写法
注意事项:
向上转型一定是安全的;
向上转型可以是自动的(例如父类作为参数时,将子类传参是可以自动转)

向下转型

将父类对象转为子类对象的过程称为向下转型
格式
子类名 子类对象 = (子类名) 父类对象
注意事项:
向下转型和向上转型必须是相互的,只能原先是这个子类转为的父类才能转回该子类。

instanceof

用instanceof关键字可以知道该类是否属于某个子类
这样可以确保向下转型正确

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值