多态、抽象类、接口

多态

1.含义
  一种事物的多种形态|多种表现形式。
2.前提
  1)类的继承
  2)接口的实现
3.表现形式
  类的引用指向子类对象
4.使用
  父类的引用在调用方法,调用子类中重写的方法
5.注意
  1)父类引用对子类新增功能不可见
  2)如果子类中没有重写方法,多态没有意义

转型

基本数据类型: 自动向上提升 强制类型转换
引用数据类型: 向上转型(自动)小转大 向下转型(强制)大转小
小范围类型–>子类
大范围类型–>父类
向下转型:当需要调用子类独有的功能,需要向下转型
引用 instanceof 类型
  判断前面的引用是否为后面类型的对象|子类的对象
  如果是,返回true,如果不是,返回false
  编译只检查引用的类型与后面的类型是否在一条继承链上,如果是就语法没有错误

抽象类

抽象类:被abstract修饰的类
抽象方法 : 被abstract修饰的方法
  1)没有方法体
  2)必须存在抽象类中
注意:
  1.抽象类不能实例化
   2.抽象方法必须存在于抽象类中
   3.抽象类中可以存在抽象方法,可以存在具体方法(有方法体的方法)
   4.通过子类使用抽象类:
    具体子类:重写抽象父类中的所有抽象方法+按需新增
    抽象子类:按需重写抽象方法+按需新增
   5.一个抽象方法如果已经被冲写过,就可以不需要再次重写
   6.抽象方法必须被重写
   7.abstract不能和static, final,private,native一起使用

接口

interface定义、特殊的抽象类
能用接口就用接口
在1.7及之前:
  静态的公共的常量+公共的抽象的方法
  属性:
    public static final默认修饰符,可以选择性的省略
  功能:
    public abstract 默认修饰符,可以选择性的省略
1.8及之后版本:
  1.静态方法:接口名字. 使用
  2.默认方法:实现类的对象使用
注意:
  1.类的继承,接口需要实现
  2.抽象方法必须被重写
  3.使用接口中的内容:接口需要实现implements,类要使用extends继承
    具体的实现类: 重写接口中的所有抽象方法+按需新增
    抽象的实现类: 按需重写抽象方法+按需新增
  4.单继承,一个类只能继承一个类,接口可以多实现,实现了接口,就拥有了接口中定义的功能
  5.一个类及继承父类又实现接口,先继承后实现
  6.避免实现的多个接口中定义了相同的功能
  7.接口可以多继承其他接口,不能是实现接口的(实现:对抽象方法方法体的实现)
  8.接口不能实例化
优点:
  避免单继承的局限性 (推荐使用接口)
  提高代码的复用性
  解耦:高内聚低耦合
  定义规范

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值