Java面向对象:oop_04

Java面向对象:oop_04

接口:

1、是引用数据类型
2、接口中可以放什么
a.所有版本:
静态常量
默认添加 public static final
Long.MAX_VALUE
Int.MAX_VALUE

抽象方法
接口的使用步骤

b.JDK1.8版本
静态方法
属于接口,通过接口名.方法名调用
默认方法
通常用来做接口功能的扩展,可以选择性的在实现类中重写(覆盖/实现)

c.JDK1.9版本
私有方法
普通私有:
为了给默认方法中的公共代码提取,实现代码的复用
静态私有:
给静态方法中公共代码提取

3、接口的使用步骤
a.接口不能new 对象,需要一个实现类 实现接口
b.实现类中必须重写接口中所有的抽象方法
c.通过实现类调用方法

接口和类的关系:
类 和 类(单继承): 1 v 1 extends 继承
接口 和 类: 没有此关系
类 和 接口(多实现): 1 v n implements 实现
接口 和 接口(多继承): 1 v n extends 继承

接口作为方法参数和返回值使用的情况:
1).接口作为方法参数使用:
可以传所有实现类对象,所以具体使用的都是接口的实现类对象
2)接口作为返回值类型使用:
可以返回所有实现类对象,所以具体返回的都是接口的实现类对象


多态

一种事物,多种形态,称为多态

1.多态出现的前提:
接口的多态:
InterfaceA a = new InterfaceAImpl(); --> 向上造型
类的多态:
Object o = new MyInterfaceAimpl()

class MyInterfaceAimpl extends Object implements InterfaceA

2.向上造型: 父类型引用 指向 子类型对象
接口类型 a = new 接口实现类对象()
父类型 a = new 子类型()

编译时状态(编译器) = 运行时状态(JVM)
编译时状态:
决定了对象能调用那些属性和方法
运行时状态:
决定了对象最终能调用那些方法(重写)

3.向下转型(强制类型转换)
a.有可能出现的问题:
不知道 引用 到底是什么类型
ClassCastException - 类型转化异常
b.解决办法:
转换之前先判断 引用 实际上是不是要转换的类型对象

引用(a) instanceof 子类型(Cat)

4.多态出现的好处:
类型统一,规范代码,代码的复用性

5.多态出现的前提:
继承: 必须存在父子类关系
向上造型:在多要中需要将子类型的引用赋值给父类型对象
重写:必须 子类重写父类中的方法

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值