java - 父类(super class)对象还是子类对象?为什么?

标签 java class subclass superclass

我是一名 Java 初学者,我不明白何时应该创建父类(super class)或子类的实例。我正在网上学习一些教程,我发现了几次类似以下代码的内容:

package test;

class ABC{
   public void myMethod(){
    System.out.println("Overridden Method");
   }
}
public class test extends ABC{

   @Override
   public void myMethod(){
    System.out.println("Overriding Method");
   }

   public static void main(String args[]){
    ABC obj = new test();
    obj.myMethod();
   }
}

为什么我应该使用ABC obj = new test();而不是test = new test(); ? 如果我需要一个新的 ABC 对象,那么只使用 ABC obj = new ABC(); 是否有意义? ?

谢谢,很抱歉提出了新手问题。

最佳答案

让我在这里给你举个例子,假设你的父类ABC有静态方法或实例变量

class ABC{
int a;
static void display(){
 System.out.println("Parent ABC");
}

现在你有了ABC abc = new test();。通过引用abc,可以访问子类testpublic void myMethod()和静态方法static void display() ABC 类的 code>。此外,您还可以将 ABC 类的实例变量 a 与引用 abc 一起使用。 请记住,静态方法、实例变量、静态变量始终根据引用类型调用(在本例中,类型为ABC)。然而,实例方法总是在我们引用的对象类型上调用(在本例中我们引用的是test类对象)。

关于java - 父类(super class)对象还是子类对象?为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51228758/

相关文章:

java - 编译成功,在 ant java 任务中出现 NoClassDefFoundError

java - 使用 MinGW 将 C 库编译为 DLL

haskell - 在父类(super class)函数的定义中使用子类实现

java - 使用泛型创建类的基类的实例

ios - 快速引用子类中的 Outlet

java - RoboGuice 3.0 NoClassDefFoundError : roboguice. 注入(inject).ContextScopedRoboInjector

java - Spring MVC 不会从链接更改区域设置

c# - C#线程和类问题

python - 类如何生成根据类属性而变化的回调函数?

python - 继承输入类的所有事件变量