java 抽象类 对象吗_Java面向对象之抽象类

1.给class前面加abstract就是抽象类,如下给Animal类添加abstract关键字。

fc36a8634a4d315784d1efa5ef7b1d5d.png

2.new Animal的时候会报错,这是在提醒我们new Animal没什么意义。但是Animal two = new Cat()是可以的。

bc86b9a27b3951aad32a9de0b969d377.png

抽象类:不允许实例化,可以通过向上转型,指向子类实例。

应用场景:某个父类只是知道其子类应该包含怎样的方法,但无法准确知道这些子类如何实现这些方法。

0c30e0df85cd159846d2aa9a7f49e92c.png

3. 具体干活的都是子类, 父类的eat方法没什么特别大的意义,一般可以定义为抽象方法,不允许包含方法体;子类中需要重写父类的抽象方法。(除非把子类也变成抽象类)没有方法体。

c8be7415844b04f0cd31912c5eec4281.png

4.为什么要使用抽象方法,抽象类?

不一定非要用抽象类, 比如动物类,有eat方法,但是动物的eat方法一般用不上,写方法体也没什么意思。猫狗鱼这些都有自己的eat方法,eat方法如果被定义成抽象类,是在提醒子类方法eat方法必须重写。

使用规则:

1.abstract定义抽象类

2.抽象类不能直接实例化,只能被继承,可以通过向上转型完成对象实例。

3.abstract定义抽象方法,不需要具体实现。

4.包含抽象方法的类一定是抽象类。

5.作为一个抽象类可以没有抽象方法。

6.当一个类中有抽象方法,这个类的子类一定要重写抽象方法。当这个子类没有重写抽象方法的时候,也要把这个类编程抽象类。

7.static private final是不能和abstract并存的。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值