java - java中的新关键字

标签 java inheritance

Java 新手,仍在为 new 关键字和继承而苦苦挣扎:

public class A1 {
    void a_method (){
        System.out.println("Inside A1 method");
    }
}

public class A2 extends A1{
    void a_method(){
        System.out.println("Inside A2 method");
    }
}

public class TestA1A2 {

    public static void main(String[] args) {

        A1 a1 = new A1();
        A1 a2 = new A2();  //not sure if it created object of A1 or A2
        A2 a3 = new A2();

        a1.a_method();
        a2.a_method();
        a3.a_method();

    }
}

我很难理解上面代码中的 new 关键字和 if:

A1 a2 = new A2();  //not sure if it created object of A1 or A2

a2 是 A1 还是 A2 的对象?从输出中我可以看到它调用了 A2 的方法,但我真的没有得到 new 关键字。而A2是对A1的扩展,是否可以调用A1的方法??

最佳答案

A1 a2 = new A2(); 

此代码创建一个 A2 对象,但您只能使用 a2 访问 A1 类的方法。如果在 A2 中重写了一个方法,则调用的是 A2 的方法。

关于java - java中的新关键字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16635465/

相关文章:

java - 如何在 Spring Boot 中从 application.yml 获取 boolean 值

java - 如何将 JProfiler 连接到在本地主机上运行的应用程序?

inheritance - 如何使用 proto-buffers 有效地完成继承

python - 关于继承和 super()

javascript - FUNCTIONS 的继承正在成为一场噩梦

c++ - 将 public 关键字与结构一起使用

c++ - 使用指针作为返回类型实现模板化接口(interface)的函数 -> 冲突返回类型错误

java - 在其他数组中移动数组中的元素

java - 如何使连拍模式可用于相机

java - Spring 部分更新对象数据绑定(bind)