为什么父类引用子类对象无法访问子类变量?

时间:2017-01-06 12:56:02

标签: java

  

父类

 class Parent
        {
            int a = 10 ;
            int b = 20 ;
            int c = 50 ;

            public void display(){
                System.out.println("In Parent Class");
            }
        }
  

儿童班

    public class Child extends Parent{

        int c = 30 ;
        int d = 40 ;

        public void display(){
            System.out.println("In Child Class");
        }
        public static void main(String[] args) {
  

父类引用子类对象。

            Parent p = new Child();
  

调用父类变量

            System.out.println(p.c);
  

调用子类方法

            p.display();
        }
    }

1 个答案:

答案 0 :(得分:0)

您似乎想要通过父参考访问子提交的变量 c

Parent p = new Child();
System.out.println(p.c);

它将输出父级提交的c ,您无法通过父级参考访问儿童 c ,因为通过p是[{1}}的一个实例,但可以通过child引用和父级引用访问,但无法访问子项的 c

如果您要打印儿童 c 。你应该downTypeCast如下:

Parent

它会打印孩子的 c