最近和人交流,遇到了这样一个问题,就是继承当中,静态方法复写的情况。
如果在子类中,复写方法没有添加static关键字,则IDE会提示:This instance method cannot override the static method from T1
如果在子类中,复写方法与父类一致,此时若添加@Override注解,则IDE报错提示:The method print() of type T2 must override or implement a supertype method
但是一般人也没这么使用的,方法复写。只是记录下来,以便了解。
package com.chinaso.phl;
public class TestT {
public static void main(String[] args) {
T1 t = new T2();
t.print();
T2 t2 = new T2();
t2.print();
}
}
class T1 {
public static void print() {
System.out.println("super");
}
}
class T2 extends T1 {
public static void print() {
System.out.println("this");
}
}
输出
super
this
分享到:
相关推荐
- 复写的方法如何覆盖父类的方法。 ##### 23) 抽象类 - **概念**: 抽象类不能实例化,通常包含抽象方法。 - **解析**: - 抽象类的特点、使用场景等。 ##### 24) Object类 - **概念**: 所有类的基类。 - **解析...
* final 可以修饰方法,该方法不能被重写(覆盖、复写)。 * final 可以修饰变量,该变量不能被赋值,因为这个变量变成了常量。 例如,使用 final 修饰类,防止子类继承父类的方法: ```java class Fu {public ...
**String类为什么复写Object类的equals方法** - `equals`方法用于比较字符串的内容是否相等。 - 示例代码展示如何使用`equals`方法比较字符串。 #### 七、IO **字节流复制文件** - 使用字节流读取文件并将其写入新...
- Java接口支持多重继承,而C++的虚类不支持多重继承。 **14. 类初始化顺序** - 类初始化顺序遵循自顶向下的原则。 - 先初始化父类,再初始化子类。 **15. 普通代码块、静态代码块、构造代码块区别** - **静态...
继承`Thread`类可以直接复写`run()`方法,而实现`Runnable`接口则需要创建一个实现了`run()`方法的类,并将其实例传递给`Thread`对象。这两种方法都可以启动新线程,但实现`Runnable`接口更为灵活,因为它允许多重...
修饰类或方法时,表示不可继承或不可复写。 25. **主函数**:`public static void main(String[] args)`是程序的入口,JVM通过识别这个固定格式来启动程序。`args`参数用于接收命令行参数。 26. **final实例变量**...
String类为什么复写Object类的equals方法** - 为了实现字符串内容的比较,而不是比较引用。 #### 七、IO **1. 字节流复制文件** - 使用`FileInputStream`和`FileOutputStream`结合缓冲区进行文件复制。 **2. ...
3.3.1 自上而下分析的一般方法 3.3.2 LL(1)文法 3.3.3 递归下降的预测分析 3.3.4 非递归的预测分析 3.3.5 构造预测分析表 3.3.6 预测分析的错误恢复 3.4 自下而上分析 3.4.1 归约 3.4.2 句柄 3.4.3 用栈实现...
+ Hashtable(实现 Map 接口,同步,不允许 null 作为 key 和 value,用自定义的类当作 key 的话要复写 hashCode 和 equals 方法) + HashMap(实现 Map 接口,非同步,允许 null 作为 key 和 value,用的多) + ...
每一个MIDlet都需要继承自`javax.microedition.midlet.MIDlet`类,并且必须复写特定的方法。 - **详解**:MIDlet类中有三个关键的方法需要被复写: - `startApp()`:启动应用时调用。 - `pausedApp()`:当应用进入...