(JAVA)抽象类的构造方法无法被外部类实例化对象调用?这句话是什么意思?

发布于 2022-01-02 11:59:36 字数 492 浏览 25 评论 6

@tcxu 你好,想跟你请教个问题:

 

 划红线处什么意思?抽象类的构造方法无法被外部类实例化对象调用?这句话是什么意思?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

凡尘雨 2022-01-08 06:11:08

回复
抽象方法肯定存在于抽象类或接口之中。 若在一个类的定义开头,冠以关键字"abstract",此类就被视为抽象类。由此导致,凡是定义带上了"abstract"帽子的类,都不能被实例化。类定义中一旦含有抽象方法,它就必须带"abstract"帽子。然而,带上"abstract"帽子的类中也可能没有抽象方法。就是说"抽象类中可以没有抽象方法"。

看透却不说透 2022-01-08 05:54:38

回复
@tcxu : 抽象类的构造方法无法被外部类实例化对象调用的意思是说抽象类无法实例化,只有抽象类的实现类(子类)才能实例化,是这样的意思吗?

成熟的代价 2022-01-08 04:09:48

回复
没错。抽象类无法实例化,只有抽象类定义中的全部抽象方法都有了定义(都具体化了),这个类才能变为可以被实例化的类, 亦可称作 它的 子类 subclass, 或称作它的派生类 Derived class。这时, 这个子类,才能被实例化。

百思不得你姐 2022-01-08 01:01:42

回复
@tcxu : “只有抽象类定义中的全部抽象方法都有了定义(都具体化了),这个类才能变为可以被实例化的类”抽象类中可以没有抽象方法,全部都是一般方法,那这样不就可以实例化了吗?

德意的啸 2022-01-08 00:58:24

回复
如果将一个可以被实例化的类(没有抽象方法,全部都是一般方法的类)的定义开头添加关键字 "abstract",那麽这个类就不能再被实例化了, 因为它已经被视为抽象类。 这样的类是不可以被实例化, 不能生成对象的。

少女净妖师 2022-01-05 04:22:37

的确,(JAVA)抽象类的构造方法无法被外部类实例化对象调用。因为抽象类的定义之中,有抽象方法,即尚未定义好 ( 描述对象/实体功能 ) 的方法,故调用它的构造方法,无法创建一个具有实际功能的实体。比如, 因为具体的吃饭方法尚未确定,此刻只能定义一个抽象类 class Person,至于吃饭方法,尚无定义。此刻吃饭方法是抽象的。仅根据这个抽象类 Person 的定义,就不可能创建实例/对象,因为无法确定吃饭的功能/方式。于是后来,在 定义 继承这个抽象类 Person 的具体类 (中国人 Chinese、美国人 American、或 印度人 Indian)的时候,必须完成吃饭方法的定义, 以便,根据不同的子类 创建出各种人实体。

总之, 抽象类的构造方法无法被外部类实例化对象调用, 因为 根据/调用 它(抽象类的构造方法) 无法创建 实体/对象。

详见:
Java的抽象类 和 它的极致情况:接口
https://my.oschina.net/tcxu/blog/1524590

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文