本帖最后由 Oh_JAVA 于 2016-7-17 22:14 编辑
- public class test {
- public static void main(String[] args) {
- new B().prin();
- }
- }
- class A{
- private int num = 3;
- public int getNum() {
- return num;
- }
- public void setNum(int num) {
- this.num = num;
- }
-
- }
- class B extends A{
- private int num=4;
- public void prin() {
- System.out.println(getNum());
- }
- }
复制代码 在代码中 B 继承了 A,继承这个概念只是形式上的(虚的),还是真的会继承到自己本身,如果是真的继承到本身,B类就相当于这样:
- class B {
- private int num=4;
- public void prin() {
- System.out.println(getNum());
- }
-
- public int getNum() {
- return num;
- }
- public void setNum(int num) {
- this.num = num;
- }
- }
复制代码 这样子 按道理应该输出 4,真实答案是输出 3,那这样子是虚的喽,虚实我不知道这样的理解是不是其实和继承不搭嘎
既然输出是3,那应该就只有产生两种方式了
1.就是像我上面第二段代码一样,真的继承下来了,调用自己的getNum(),但是java知道那个getNum()是父类继承下来的,所以num直接去父类里找了
2.就是第一段代码一样,虚的,直接去父类调用getNum(),找到num
上面两种方式应该是那种,还是其他的解释?
我不知道大家有没有弄懂我想表达的意思,也可能就是我脑子一根筋,想不明白吧~~
|
|