`
85977328
  • 浏览: 1903536 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java继承静态方法复写

 
阅读更多
最近和人交流,遇到了这样一个问题,就是继承当中,静态方法复写的情况。
如果在子类中,复写方法没有添加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
1
4
分享到:
评论
3 楼 mike.liu 2014-03-12  
yjc2020 写道
mike.liu 写道
静态方法,也称为类方法。不建议用对象去调用,而应该用类去调用。


直接T1.print() ?

是的。静态方法里面不能访问对象的成员的,只能访问静态成员。
不用对象去调用静态方法,可以避免误解,以为这个方法会访问对象。
反过来,对象方法是可以自由访问静态方法的。
2 楼 yjc2020 2014-03-12  
mike.liu 写道
静态方法,也称为类方法。不建议用对象去调用,而应该用类去调用。


直接T1.print() ?
1 楼 mike.liu 2014-03-12  
静态方法,也称为类方法。不建议用对象去调用,而应该用类去调用。

相关推荐

    JAVA学习笔记1

    - 复写的方法如何覆盖父类的方法。 ##### 23) 抽象类 - **概念**: 抽象类不能实例化,通常包含抽象方法。 - **解析**: - 抽象类的特点、使用场景等。 ##### 24) Object类 - **概念**: 所有类的基类。 - **解析...

    面向对象的应用用于灵活应用的各个场景笔记总结.docx

    * final 可以修饰方法,该方法不能被重写(覆盖、复写)。 * final 可以修饰变量,该变量不能被赋值,因为这个变量变成了常量。 例如,使用 final 修饰类,防止子类继承父类的方法: ```java class Fu {public ...

    java面试题面试总结

    在JSP中定义静态方法可以通过`<jsp:root>`标签内的`<jsp:attribute>`标签实现,但这并不推荐,通常静态方法应在Java类中定义。 8. 复写hashCode()方法: 当一个对象作为哈希表(如HashMap)的键时,需要重写...

    Java极品学习资料

    **String类为什么复写Object类的equals方法** - `equals`方法用于比较字符串的内容是否相等。 - 示例代码展示如何使用`equals`方法比较字符串。 #### 七、IO **字节流复制文件** - 使用字节流读取文件并将其写入新...

    Java经典面试题+答案(带书签)pdf

    - Java接口支持多重继承,而C++的虚类不支持多重继承。 **14. 类初始化顺序** - 类初始化顺序遵循自顶向下的原则。 - 先初始化父类,再初始化子类。 **15. 普通代码块、静态代码块、构造代码块区别** - **静态...

    java多线程设计模式

    继承`Thread`类可以直接复写`run()`方法,而实现`Runnable`接口则需要创建一个实现了`run()`方法的类,并将其实例传递给`Thread`对象。这两种方法都可以启动新线程,但实现`Runnable`接口更为灵活,因为它允许多重...

    javase基础笔记总结全套.docx

    修饰类或方法时,表示不可继承或不可复写。 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 用栈实现...

    JAVA 区分集合和数组

    + Hashtable(实现 Map 接口,同步,不允许 null 作为 key 和 value,用自定义的类当作 key 的话要复写 hashCode 和 equals 方法) + HashMap(实现 Map 接口,非同步,允许 null 作为 key 和 value,用的多) + ...

    J2ME试题库

    每一个MIDlet都需要继承自`javax.microedition.midlet.MIDlet`类,并且必须复写特定的方法。 - **详解**:MIDlet类中有三个关键的方法需要被复写: - `startApp()`:启动应用时调用。 - `pausedApp()`:当应用进入...

Global site tag (gtag.js) - Google Analytics