Ali*_*ian 6 oop inheritance class subclass
从另一个类继承的类与作为其子类的类之间是否存在技术差异?以下代码中A和B之间的区别是什么:
一个)
public class foo {
...
private class bar {...}
}
Run Code Online (Sandbox Code Playgroud)
B)
public class foo { ...}
private class bar extends foo {...}
Run Code Online (Sandbox Code Playgroud)
Aar*_*lla 13
你是混合术语.子类与继承的类相同.
在示例A中,bar是一个内部类.内部类就像嵌套类型.bar可以看到所有的私人的东西foo,但它本身不是一个foo(你可以不投bar给foo).
在继承的情况下,您可以将派生类视为其基类。也就是说,您可以保留基类引用的集合并调用它们的方法,而无需知道实际对象是否属于任何派生类型,如果是,则属于哪种派生类型。这是一个重要的语义概念。
在成员类的情况下,内部类只是外部类的实现细节,甚至对消费者来说是不可见的。即使它是可见的,它也只是该类的一个特征foo。您可以看到,这两种情况在语义上非常不同,您必须选择最准确地代表您的实际数据模型的一种。
从技术上讲,由于各种虚函数调用,派生类的重量可能会稍重一些,但细节取决于您的语言和具体情况。
| 归档时间: |
|
| 查看次数: |
9172 次 |
| 最近记录: |