java - 这段代码的含义是什么?与多态性相关

标签 java polymorphism radix derived-class println

public class Base {
   public String className() {
      return "Base";
   }
}

public class Derived extends Base {
   @Override
   public String className() {
      return “Derived”;
   }
   public void testCalls() {
      Base base = (Base)this;
      out.println("Through this: " + this.className());
      out.println("Through base: " + base.className());
      out.println("Through super: " + super.className());
   }
}

这个 super 从哪里来?另外为什么它是 out.println 而不是 System.out.println

最佳答案

  • this是一个保留关键字,表示正在执行的对象 方法/构造函数。
  • super也是一个保留字,指的是当前类的“父类”。
  • 它是 out.println 因为有人可能使用 static import系统上(这通常是一种不好的做法,所以你最好避免它)。

关于java - 这段代码的含义是什么?与多态性相关,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28703999/

相关文章:

java - 为什么这段代码会给出线程优先级的输出?

java - 如何在 IntelliJ IDEA 中查找顶级未注释的类

java - 是什么导致我的结果打印结果与应有的相反?

任何基数的 C++ 乘法

java - org.springframework.web.client.RestTemplate 预计被声明为 @Bean 和普通 @Autowired 抛出错误

java - java中从数组列表中获取对象的字段

swift - 在 Swift 中返回不同类类型的多态方法?

java - 如何强制Java动态方法调用绑定(bind)

c++ - 如何检查派生类对象是否已存储在 vector 中?

c - (C) 对文本文件中的数组进行基数排序