如何在Java中实例化派生类对象?

如何在Java中实例化派生类对象?,java,Java,在此代码中 class Foo { public int a = 3; } class Bar extends Foo { public int a = 8; } public class HelloWorld { public static void main(String[] args) { Foo f = new Bar(); Bar f = new Bar(); } } 两者的区别是什么 Foo f = new

在此代码中

class Foo {

    public int a = 3;
}

class Bar extends Foo {

    public int a = 8;
}

public class HelloWorld {

    public static void main(String[] args) {
        Foo f = new Bar();
        Bar f = new Bar();
    }
}
两者的区别是什么

Foo f = new Bar(); 

Bar f = new Bar();

谢谢

此关系称为is-a关系。每个
Bar
对象都是
Foo
对象。但是,
Foo
对象不能是
Bar
对象

调用
Foo f=new Bar()
时,您正在创建一个
Foo
对象,这意味着只有Foo的字段可以在f中访问。也就是说,
f.a
在本例中为3


另一方面,
Bar f=new Bar()
创建一个
Bar
对象,这意味着在这种情况下
f.a
将为您提供8。

第一个实例化比第二个更广泛。
Bar
Foo
,但是
Foo
可能不是
Bar
。提示:这是非常基本的东西。请提前对这些主题做一些前期研究。Stackoverflow不是一所编程学校,在那里你可以学习到处都有文档记录的东西。对不起,我是一个初学者。请给我这个主题的阅读材料的链接。多谢各位@Jägermeister@Jägermeister你是对的,但别忘了我们都是从某个地方开始的……你可以从:开始,看看这张照片:。我同意@Jägermeister.hint的评论:在线查找可替代性的概念