如何设计父类使得每个子类都继承并重写父类的一个static方法?

问题描述

RT。java能办到吗?或者有没有其他办法?

解决方案

解决方案二:
父类中的static方法是不可以重写的
解决方案三:
引用1楼jqctop1的回复:

父类中的static方法是不可以重写的

是的,我觉得单靠语法层面是不能处理这个问题的。
解决方案四:
publicabstractclassTest{publicstaticvoidf(){thrownewRuntimeException("Youmustoverridethisstaticmethod.");}publicstaticvoidmain(String[]args){A.f();B.f();}}classAextendsTest{publicstaticvoidf(){System.out.println("ThisisamethodofclassA.");}}classBextendsTest{}

解决方案五:
楼上的代码不行。。。等于说,基类知道派生类的存在了。
解决方案六:
static方法没有多台的概念,不能被重写,只会被隐藏
解决方案七:
引用4楼healer_kx的回复:

楼上的代码不行。。。等于说,基类知道派生类的存在了。

不懂你的意思。我的代码只在main函数中引用了派生类。貌似main函数在哪里都可以吧。我只不过是为了方便才写到基类里。
解决方案八:
引用3楼powerlee2008的回复:

JavacodepublicabstractclassTest{publicstaticvoidf(){thrownewRuntimeException("Youmustoverridethisstaticmethod.");}publicstaticvoidmain(String[……

学习了!
解决方案九:
引用6楼powerlee2008的回复:

引用4楼healer_kx的回复:楼上的代码不行。。。等于说,基类知道派生类的存在了。不懂你的意思。我的代码只在main函数中引用了派生类。貌似main函数在哪里都可以吧。我只不过是为了方便才写到基类里。

嗯,是我没仔细看清楚。
解决方案十:
但是我觉得3楼的代码还是。。。没有做到强制。。。楼主,你是想让派生类强制“重写”吧?
解决方案十一:
(父类的)静态方法是不能被重写的,这样违背了重写的概念,如果楼主非要重写,那么子类的方法也必须是静态的,这就不是重写了。楼主你可以用接口啊
解决方案十二:
父类的静态方法只能被隐藏不能被重写

时间: 2024-12-31 10:21:09

如何设计父类使得每个子类都继承并重写父类的一个static方法?的相关文章

用类的继承关系(重写父类的方法)实现简易后台代码模板_实用技巧

Asp.net的优势就在于快速构建应用,而对于一些最基础数据的增删改以及分页事件或者样式的设定可以通过在父类中写上虚方法来供子类调用,如果子类需要在模板的基础上衍生变化或者索性不要父类的方法的话,则只需要重写父类的方法即可. 实验代码如下: 首先是模板类的抽象,继承自Page类: 复制代码 代码如下: public class Template : System.Web.UI.Page { protected override void OnLoad(EventArgs e) { base.On

android java 继承父类里的子类问题!!!!!!!

问题描述 android java 继承父类里的子类问题!!!!!!! 请问各位,java可以继承父类的方法和全部属性,那父类里的子类可以继承使用么? android 可以继承父类的Handler.广播么??

一段代码,父类调用了子类重载的方法,求解释。

问题描述 public class Person {public void fight(){System.out.println("Person战斗");say();}public void say(){System.out.println("Person说话");}} public class Student extends Person {@Overridepublic void fight() {System.out.println("Student

java中如果一个类不是某个父类的子类,然后去调用父类的方法会报错吗

问题描述 java中如果一个类不是某个父类的子类,然后去调用父类的方法会报错吗 java中如果一个类不是某个父类的子类,然后去重写父类的方法会报错吗 比如 public Cxff { super.onCreate( )}有语法错误吗 解决方案 肯定会报错,举个不太恰当的例子,我爸的钱我可以随便花,陌生人要是想花就花,那不是要上天了? 解决方案二: 会报错的,它不是某个父类的子类,它的super就不会指向你说的那个父类 解决方案三: 肯定报错啊 没有继承父类,也没有实现接口的话 没有方法重写这一说

对象-oc 类的继承的实质,以及是怎样调用方法 和函数的

问题描述 oc 类的继承的实质,以及是怎样调用方法 和函数的 父类里声明的属性,会生成默认生成一个私有的成员变量.即不能被子类访问,那么子类通过继承得到了父类的属性,只能通过setter 和 getter 方法区访问父类的私有变量,那么这个私有变量不属于子类,那么在实例化这个子类的时候就没有这个私有变量,那么通过继承过来的setter 和getter方法访问的是什么,私有变量根本就没有生成啊! 同理在使用{}声明的私有变量同样可以在提供外部接口让外部访问,但是当子类继承后也可以通过生成实例对象,

static方法能够继承吗

问题描述 static方法能够继承吗,求解答,谢谢 解决方案 可以继承 但是假如本类是final类,则不能被继承解决方案二:class Parent {public static void say() {System.out.println("hello");}}class Son extends Parent {}public class Test { public static void main(String[] args) { Son.say();} }如上代码,表名子类继承了

类型转换,类与类之间的转换,继承关系,继承与静态变量,子类父类重名,多继承,虚基类

 常量的基本类型转换,例如:int num(10.8),这种方式是隐式转换. 通过函数的构造函数实现转换. 类类转换函数,当构造函数不能将类型转换成基本类型时.所以就有了类类转换函数,通过这种方式. 案例: #include <iostream> class fushu { public: //通过加explicit的这种方式避免隐式转换,避免引发歧义 explicit fushu(int num) { x = num; y = num; } void print() { std::cou

解决重写父类的方法且不会影响继承的子类的问题

解决重写父类的方法且不会影响继承的子类的问题 基类的方法被所有继承的子类继承,是不应该被修改的,如果继承的子类重写了基类的方法,那么,再从这个子类派生出子类的话,这个派生的子类接口已经破坏掉了统一的接口. 但有时候,我们需要一个子类能扩展基类的方法,但又不想破坏这个统一的接口,这时候,哥就来教你既能扩展功能,又能保证接口的统一性:) 首先做几个实验验证: 提供的源码如下: A类  B类  C类  (B类继承于A类,C类继承于B类) // // A.h // Super // // Copyrig

在NHibernate的单表继承模式下通过父类Repository查询子类

在NHibernate中经常遇到继承与关系数据库的ORMapping的问题,我之前的一篇博客(http://www.cnblogs.com/studyzy/archive/2011/08/16/2140675.html)介绍了有3种常用的实现方式: Concrete Table Inheritance(具体表继承) Single Table Inheritance(单表继承) Class Table Inheritance(类表继承) 其中单表继承是我个人比较常用比较推荐的做法.使用单表继承可以