Abh*_*hek -1 java inheritance class
我是JAVA的新手,想知道为什么
A a = new B();
Run Code Online (Sandbox Code Playgroud)
是有效的
B b = new A();
Run Code Online (Sandbox Code Playgroud)
无效考虑到:
class A;
class B extends A;
Run Code Online (Sandbox Code Playgroud)
因为B,通过延伸A,也是一个A.我们用面向对象的术语来说这是a B -a A.这意味着您可以使用您使用的B任何地方A.
这种关系是不可交换的- B是-一A不不意味着A是-A B.因此,您无法使用A任何您想要使用的地方B.
考虑这种情况:
class Animal;
class Dog extends Animal;
Run Code Online (Sandbox Code Playgroud)
这是有道理的:
Animal animal = new Dog();
Run Code Online (Sandbox Code Playgroud)
在任何地方使用Animal你都可以使用a Dog.这很直观.
Dog dog = new Animal();
Run Code Online (Sandbox Code Playgroud)
另一方面,这没有意义.
| 归档时间: |
|
| 查看次数: |
3966 次 |
| 最近记录: |