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

图片中被抽取到person父类中的work方法,对于学生来说是学习,对于老师来说是教书,我们以前知道可以利用方法重写,但是我们可以利用关键字abstract。
被abstract修饰的方法叫做抽象方法,所在的类叫做抽象类,继承于抽象类的子类必须重写。
抽象方法:将共性的方法抽取到父类后,由于每一个子类执行的内容是不一样的,所以,在父类中不能确定具体的方法体。该方法就可以定义为抽象方法。
抽象类:如果一个类中存在抽象方法,那么该类就必须声明为抽象类。
抽象类表现形式:public abstract class Animal{
}
抽象方法表现形式:public abstract void eat(); (注意此处没有方法中的方法体)
注意点:①抽象类不能实例化(不能创建抽象类的对象)
②抽象类中不一定有抽象方法,有抽象方法的类一定是抽象类
③可以有构造方法(创建子类对象的时候可以使用构造方法)
④抽象类的子类
1.要么重写抽象类中的所有抽象方法
2.要么是抽象类
举个例子:父类为抽象类,就不能创建对象了
子类继承为抽象类的父类后,子类要么也是抽象类,要么必须重写父类中的所有抽象方法,因为有抽象方法的类一定是抽象类,个人建议重写父类中的所有抽象方法,因为抽象的类不能创造对象

那我们不禁思考,既然父类中有抽象方法,那我们是不是可以不抽取子类中的抽象方法,直接在子类中添加子类中的特有方法,那为什么还要用抽象方法?
那是因为为了代码统一,因为父类中有抽象方法,子类中遇到这个抽象方法必须进行重写,在工作中,一个项目并不是一个人在开发,这样做可以做到方法统一,代码规范,减少错误的风险。
文章讨论了Java编程中抽象方法和抽象类的概念。抽象方法在父类中定义但无具体实现,每个子类根据需要重写。抽象类包含抽象方法,不能实例化,子类要么重写所有抽象方法,要么自身也成为抽象类。这种设计模式有助于代码统一和团队协作时的代码规范。
&spm=1001.2101.3001.5002&articleId=128944006&d=1&t=3&u=d166ae8b763d4a5fbea4510f2db8e71e)
1101

被折叠的 条评论
为什么被折叠?



