java为什么具体类的子类可以声明为抽象类,而某些父类方法可以重写并声明为抽象类? 7 月,3 周 Questions & Answers 2660 通常我们将抽象类的子类声明为具体的,并将抽象方法重写为具体的。是否存在对立面的使用
# 1 楼答案 脑海中浮现的一个用例 假设你有一门课,如下所示 public abstract class Animal { // Some stuff. } 然后你说,好吧,现在我想要一个Giraffe类Giraffe是特定的,所以没有必要让它abstract public class Giraffe { // Some stuff that overrides or uses the Animal behaviour. } 现在给它一些时间,当你有六七个应用程序使用你的代码时 然后,有一天,当你感到无聊时,你决定在维基百科上查找长颈鹿,你发现事实上,Giraffe非常模糊!有斑点长颈鹿,条纹长颈鹿,长腿长颈鹿。。所有这些都出现在不同的国家!那你是做什么的 你可以把长颈鹿变成一个abstract类,把它变成一个子类。。但是你已经有很多应用程序在使用你的代码。你会立即将它们过时并强制进行大规模更新吗李> 您可以创建更多的类来描述Giraffe的更具体形式,但是StripyGiraffe不够具体。。除非你能让那个类abstract李> 那你是怎么做的 你选择后者 public abstract class StripyGiraffe extends Giraffe 你可以继续扩展 public class AfricanStripyGiraffe extends StripyGiraffe 这样一来,旧代码就可以顺利运行,并且仍然非常欢迎您尽可能地扩展对象层次结构。当对象不够具体,无法实例化时,可以通过将其声明为abstract来维护对象的完整性,并且使用此方法允许用户仍然声明 Giraffe geoffrey = new AfricanStripyGiraffe();
# 1 楼答案
脑海中浮现的一个用例
假设你有一门课,如下所示
然后你说,好吧,现在我想要一个
Giraffe
类Giraffe
是特定的,所以没有必要让它abstract
现在给它一些时间,当你有六七个应用程序使用你的代码时
然后,有一天,当你感到无聊时,你决定在维基百科上查找长颈鹿,你发现事实上,
Giraffe
非常模糊!有斑点长颈鹿,条纹长颈鹿,长腿长颈鹿。。所有这些都出现在不同的国家!那你是做什么的abstract
类,把它变成一个子类。。但是你已经有很多应用程序在使用你的代码。你会立即将它们过时并强制进行大规模更新吗李>Giraffe
的更具体形式,但是StripyGiraffe
不够具体。。除非你能让那个类abstract
李>那你是怎么做的
你选择后者
你可以继续扩展
这样一来,旧代码就可以顺利运行,并且仍然非常欢迎您尽可能地扩展对象层次结构。当对象不够具体,无法实例化时,可以通过将其声明为
abstract
来维护对象的完整性,并且使用此方法允许用户仍然声明# 2 楼答案
在Java中,我从对象类型派生的每个类。这就是答案,当你从具体的类中创建一个抽象的类时。您只需声明实现不完整,应该在较低的抽象层上进行详细说明