正在回答 回答被采纳积分+1
2回答
好帮手慕珊
2019-07-28 15:54:30
你好!如果在子类中新定义一个和父类一样的属性,那么父类的属性可以被看成隐藏了。可以看一下下面代码的输出结果,当使用子类的引用调用age,得到的是子类中的值。当使用父类引用调用,得到的是父类的age的值。所以父类的age还是存在的,只是使用的方式不同了。
代码如下:
public class A { public int age=5; } public class B extends A{ public int age=10; } public class Test { public static void main(String[] args) { B b=new B(); System.out.println(b.age); A a=new B(); System.out.println(a.age); } }
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
好帮手慕小班
2019-07-27 14:16:48
同学你好,1、静态方法和属性是属于类的,调用的时候直接通过类名.方法名完成对,不需要继承机制即可以调用;
(1)如果子类里面定义了静态方法和属性,则这时候父类的静态方法或属性称之为"隐藏";
(2)如果想要调用父类的静态方法和属性,直接通过父类名.方法或变量名完成。
2、这里可以参考如下例子来理解:
父类代码
public class StaticParent { public static int a = 0; public static void printA() { System.out.println("In Parent, a = " + a); } }
子类代码
public class StaticSon extends StaticParent { public static void main(String[] args) { printA(); StaticParent a = new StaticSon(); a.printA(); } // @Override 这里使用这个注解表示重写这个方法,所以这里不是对这个静态方法的重写 public static void printA() { System.out.println("In son a = " + a); } }
结果如下:
所以说这里的printA只是对父类中的方法进行了隐藏,当使用父类引用接收子类对象,调用printA时,还是父类中的方法,并没有被覆盖
1. Java 零基础入门
- 参与学习 人
- 提交作业 3802 份
- 解答问题 11489 个
本阶段带你迈入Java世界,学习Java必备基础知识,基础语法、面向对象思想以及常用工具类的使用。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星