Java中抽象方法和抽象类(abstract关键字)

文章讨论了Java编程中抽象方法和抽象类的概念。抽象方法在父类中定义但无具体实现,每个子类根据需要重写。抽象类包含抽象方法,不能实例化,子类要么重写所有抽象方法,要么自身也成为抽象类。这种设计模式有助于代码统一和团队协作时的代码规范。

在Java中,当我们利用继承写结构时,可能会遇到一种问题,那就是被提取到父类中的方法是抽象的。

图片中被抽取到person父类中的work方法,对于学生来说是学习,对于老师来说是教书,我们以前知道可以利用方法重写,但是我们可以利用关键字abstract。

被abstract修饰的方法叫做抽象方法,所在的类叫做抽象类,继承于抽象类的子类必须重写。

 

抽象方法:将共性的方法抽取到父类后,由于每一个子类执行的内容是不一样的,所以,在父类中不能确定具体的方法体。该方法就可以定义为抽象方法。

抽象类:如果一个类中存在抽象方法,那么该类就必须声明为抽象类。

抽象类表现形式:public abstract class Animal{

                                }

抽象方法表现形式:public abstract void eat();                                  (注意此处没有方法中的方法体)

注意点:①抽象类不能实例化(不能创建抽象类的对象) 

              ②抽象类中不一定有抽象方法,有抽象方法的类一定是抽象类

              ③可以有构造方法(创建子类对象的时候可以使用构造方法)

              ④抽象类的子类

              1.要么重写抽象类中的所有抽象方法

              2.要么是抽象类

举个例子:父类为抽象类,就不能创建对象了

 子类继承为抽象类的父类后,子类要么也是抽象类,要么必须重写父类中的所有抽象方法,因为有抽象方法的类一定是抽象类,个人建议重写父类中的所有抽象方法,因为抽象的类不能创造对象

 那我们不禁思考,既然父类中有抽象方法,那我们是不是可以不抽取子类中的抽象方法,直接在子类中添加子类中的特有方法,那为什么还要用抽象方法?

那是因为为了代码统一,因为父类中有抽象方法,子类中遇到这个抽象方法必须进行重写,在工作中,一个项目并不是一个人在开发,这样做可以做到方法统一,代码规范,减少错误的风险。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值