Java基础11接口 多态

02,接口 定义的格式

引用类型:

数组[ ]

接口: 没有构造方法

1,只有抽象方法(JDK7) abstract

2,默认方法(JDK8) default

3,静态方法(JDK8) static

4,私有方法(JDK9) private

接口:

是方法的集合,如果说类的内部封装了成员变量,构造方法和成员方法,那么接口的内部主要就是封装了方法

 

接口的使用:

不能创建对象,但是可以被实现,一个实现接口的类需要实现接口中所有的抽象方法,创建该类对象,就可以调用方法,否则它必须是一个抽象类

 

定义格式:

 

 

历史上,接口中只有抽象方法,所以曾经所有的方法都是抽象的,默认也就是abstract

public abstract void method();

public void method();

 

public default void method(){

默认方法:

}

 

public static void method(){

静态方法: 不需要创建实现类,直接使用,让接口调用的方式更简单了

}

 

private void method(){

私有方法:

抽象方法调用

默认方法调用

静态方法调用

 

}

 

03,接口 使用格式1 抽象方法

实现:

子类和父接口的关系是实现 implements

实现步骤:

1,定义子类,实现父接口

2,重写方法

3,创建子类对象

4,调用方法

 

04,接口 使用格式2 默认方法

default关键字

使用: 子类实现接口,实现类可以直接调用默认方法,也可以重写默认方法

语法格式:

public default void method(){

 

}

作用:

可以被重写

不重写就是接口中的方法作用

存在意义就是直接使用

 

05,接口 使用格式3 静态方法

static,带有方法体

使用: 不需要子类就可以使用

 

06,接口 使用格式4 私有方法

private关键字

使用:

接口中自己使用,不被外界使用

本质上是一个默认方法,就是已经实现的方法,只能被接口内部使用

 

07,接口 多实现 基本原则

多实现:

接口的本质就是方法,实现类就是要实现所有接口的方法(历史),现在可以不实现默认方法和静态方法,私有方法本质上属于默认方法

 

08,接口 多实现 抽象方法的实现

注意:

接口中重名的抽象方法,只需要重写一次

 

09,接口 多实现 默认方法的实现

 

10,接口 多实现 优先级

优先级:

从左到右,

11,接口 多继承和成员特点

特点:

1,没有构造方法

2,没有静态代码块(用于给成员初始化的)

3,没有变量,只有常量

 

12,多态 概述和前提

封装

继承

多态

这三种面向对象的特性都是无处不在的

多态:

同一行为,在不同类中具有多个不同表现形式

1,前提: 继承或者实现二选一

2,方法重写,不重写,就失去了多态意义(不重写,使用的还是父类的方法)

3,父类对象指向子类对象

总结:

通过多态的形式,创建对象,执行效果是子类重写后的效果,表现出多种形态

 

13,多态 父类作为参数 传递子类对象

目的:

利用多态,代码更加灵活,传不同的子类对象进去,就会展现出不同的行为动作.

 

14,多态 水果案例 引出问题

需求:

不断扩展需求的过程中,只能不断扩展重载方法的个数吗?

需求总是无穷无尽的.

 

15,多态 水果案例 解决问题

解决方法:

通过使用父类作为参数来解决问题

 

16,多态 看家案例 接口作为参数

接口作为参数:

好处: 更加灵活,因为不是所有子类都属于同一个父类,有时候只是给实现类增加一个功能

这样让接口作为参数,会更好的实现动作

 

17,多态 转型 强制类型转换 父转子

问题:

父类可能没有实现子类的某些方法,在使用父类调用子类方法的时候就不能通过了.

解决方法:

强制类型转换

18,多态 转型 强制类型转换问题 instanceof

问题:

类型转换时候,可能会报错,先判断,再转换,避免异常

解决方法:

instanceof(): 是否属于类型

equals(): 是否是同一个值

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

能力工场小马哥

如果对您有帮助, 请打赏支持~

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

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

打赏作者

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

抵扣说明:

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

余额充值