美文网首页
使用多态,出现了Java初始化无效的问题

使用多态,出现了Java初始化无效的问题

作者: 虚无一代 | 来源:发表于2018-06-22 18:01 被阅读0次

前几天做一个项目,利用多态创建了一个对象,并对其传参了,但是调用其get方法的时候却发现其属性并没有被初始化。下面写了几个简单的例子来还原一下其具体情况:

这是父类ex

package tutorial1;
import java.util.ArrayList;

public class ex {
    private int a;
    private int b;

    public ex(int a, int b) {
        this.a = a;
        this.b = b;
    }

    public ex(){
        this(0, 0);
    }

    public int getA() {
        return a;
    }

    public int getB() {
        return b;
    }

    public void setA(int a) {
        this.a = a;
    }

    public void setB(int b) {
        this.b = b;
    }
}

这是子类ex1

package tutorial1;

public class ex1 extends ex {
    private int a;
    private int b;

    public ex1(int a, int b) {
        this.a = a;
        this.b = b;
    }

}

这是检测方法:

package tutorial1;

public class userEx {
    public static void main(String[] args) {
        ex obj = new ex1(88, 88);
        int a = obj.getA();
        int b = obj.getB();
        System.out.println(a);
        System.out.println(b);
    }
}

输出结果是:



最后发现问题其实就是子类中没有重写get方法,导致调用get方法的时候实际上是调用了父类方法,所以get到的是父类的属性值。新建对象的时候只是初始化了子类的属性值。这样自然就无法get到值了。

相关文章

  • 使用多态,出现了Java初始化无效的问题

    前几天做一个项目,利用多态创建了一个对象,并对其传参了,但是调用其get方法的时候却发现其属性并没有被初始化。下面...

  • 面经一

    目的: 总结下面试时遇到的问题,并附上自己的答案. 1 Java基础 1.1 Java的继承,多态。 以及多态...

  • 解决 selenium + chrome webdriver 内

    在 selenium 长时间运行时出现了浏览器崩溃的问题,处理思路: 尝试使用 handless 解决,发现无效,...

  • Java后端面试题归纳

    Java基础 Override、Overload和多态 多态是指使用相同的接口来应对不同的底层形式的能力,通俗的来...

  • java多态面试题

    java多态性 多态分两种: (1) 编译时多态(设计时多态):方法重载。 (2) 运行时多态:JAVA运...

  • java多态面试题

    java多态性 多态分两种: (1) 编译时多态(设计时多态):方法重载。 (2) 运行时多态:JAVA运行时...

  • 2018-01-25

    多态机制 java语言,实现多态...

  • Java关于初始化问题的总结(一)

    Java关于初始化问题的总结(一) 前言 以下针对Java程序中一些初始化问题进行探讨与总结 成员初始化 当创建一...

  • java 类初始化 顺序

    Java 类初始化介绍 java语言在使用过程中最先开始就是初始化,在工作中如果遇到什么问题需 要定位往往到最后也...

  • Java属性的多态问题

    起因是最近修改代码中发现父类和子类中拥有相同名字的属性。那么在对象使用该属性时到底调用的是哪个呢?这是一个多态的问...

网友评论

      本文标题:使用多态,出现了Java初始化无效的问题

      本文链接:https://www.haomeiwen.com/subject/rqqlyftx.html