Java小记——多态、抽象类

目录 

多态

抽象类


多态

指同一种事物表现出的多种形态。

多态使用前提

1.子类必须继承父类

2.子类要有方法重写

3.父类引用指向子类对象

格式:

子类 zi = new 子类()

父类 fu = new 子类()——向上转型

多态成员访问特点

1.访问成员变量

例 

父类 fu = new 子类()

fu.name

访问的是父类的name(编译看左边,运行看左边)

2.访问成员方法

父类 fu = new 子类()

fu.show()

首先看父类中是否有show方法

若有,再看是否被子类重写

若被重写,则访问的是子类重写的show方法,反之,访问父类的show方法(编译看左边,运行看右边)

3.构造方法

创建子类对象时,先访问父类的构造方法。

4.静态方法

访问的是父类的(编译看左边,运行看右边)

多态的好处

1.提高了代码的维护性(继承)

2.提高了代码的扩展性(多态)

程序设计原则:开闭原则——对扩展开发,关闭修改。即不能在一个类中多次修改增加功能。

多态的弊端

无法访问子类特有的功能,必须向下转型

Animial为父类,Cat为子类

Animal an = new Cat()     //向上转型(多态)

Cat cat = (Cat) an      //向下转型 ,即可访问子类的个性的成员变量和方法

抽象类

一个方法没有方法体称为抽象方法。  public abstract void xxx();

类中若有抽象方法,必须定义为抽象类。

抽象类特点

1.abstract关键字修饰

2.抽象类不一定有抽象方法,有抽象方法的类一定是抽象类

3.不能直接创建对象,可用多态的方式创建

父类 fu = new 子类()

4.抽象类的子类,可以是抽象子类,也可以不是抽象的,但要重写抽象类中的所有方法

5.抽象类可以有构造方法

注意事项

1. private abstract 矛盾,因为抽象强制重写,而private 子类无法继承重写。

2. public  abstract final 矛盾, 因为抽象强制重写, 而final 不能重写

3. public abstract static 矛盾, 因为静态方法不算重写,子类没有办法重写静态方法。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Jmh-Ethereal

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值