java中使用JDBC连接数据库的步骤?
更新时间:2022-03-10 21:03
最满意答案
class Father{ public static String getName(){ return "Father"; } } 因为你把父类方法修饰成了static 子类不能重写父类的这个方法!去掉static就是你想要的结果了
其他回答
会执行子类的方法因为child,father这两个类是继承关系 所以你现在的子类中的方法是重写父类的方法。而你又是用的父类类型承载子类对象,所以使用此对象调用的方法是子类重写的方法。
书上写的是 :“如果子类重写了父类的静态方法,那么子类对象的上转型对象不能调用子类的静态方法,只能调用父类的静态方法。(Java2实用教程(第四版) 耿祥义 张跃平编著 第128页的注:) http://blog.csdn.net/xiangwanpeng/article/details/52504274?locationNum=12&fps=1 这是我看到的一篇关于static方法能否被重写的博文,博主结论是:Java中,如果父类中含有一个静态方法,且在子类中也含有一个返回类型、方法名、参数列表均与之相同的静态方法,那么该子类实际上只是将父类中的该同名方法进行了隐藏,而非重写。换句话说,父类和子类中含有的其实是两个没有关系的方法,它们的行为也并不具有多态性。正如同《Java编程思想》中所说:“一旦你了解了多态机制,可能就会认为所有事物都可以多态地发生。然而,只有普通方法的调用可以是多态的。”这也很好地理解了,为什么在Java中,static方法和final方法(private方法属于final方法)是前期绑定,而其他所有的方法都是后期绑定了。
说白了就是每个类的静态方法只有一份拷贝,和对象无关,这样就好理解了。 可以了解一下前期绑定和动态绑定的概念
相关问答
更多-
关于父类和子类同名static方法的调用[2023-07-24]
class Father{ public static String getName(){ return "Father"; } } 因为你把父类方法修饰成了static 子类不能重写父类的这个方法!去掉static就是你想要的结果了 -
关于java中子类方法必须调用父类构造方法[2023-10-17]
在用类声明一个对象时才会调用构造方法,如果你只需调用ListAdapter这个方法,那么你把它设置成静态方法不就行了嘛,调用时直接用ListActivity.ListAdapte()。 -
java中 子类 一定要调用父类的所有构造方法吗?[2023-11-25]
不是~~但是至少应该调用一个!也可以全部调用的! 任意一个类都拥有构造器的!如果你自己没有写,系统会给你加上一个默认的,没有参数的构造器,如果你自己写了,系统不会给你加上去的! 因为继承就是要把父类的东西拿给自己,并在此基础上扩充自己! 子类在调用构造器的时候,不知道父类拥有什么,所以我们需要调用父类的构造器! 如果父类没有自己写构造器,在子类中你自己不写 super 调用构造器的时候~~系统会调用父类的默认的构造器! 你也可以自己写上想调用父类的哪一个构造器! 要关灯了~~~ 欢迎发消息继续交流! -
java子类怎么调用父类的方法[2023-11-09]
有构造函数的调用和非构造函数的调用 class A{ public A(){ } public protected void function(){ } private void function11(){ //不可被子类调用private修饰的,最低级别至少是protected } } class B extends A{ public void function2(){ function();//也可以用super.function(); } public B(){ super(); } } -
Java中子类的构造方法调用父类构造方法的问题[2022-07-02]
没有修饰符,默认就是protected的,这种变量是能被子类访问的。 -
MYSQL中删除父类同时删除全部子类?[2023-03-04]
在建表sql语句中,加上一句: CONSTRAINT fk_father FOREIGN KEY (fid) REFERENCES yourTableName(id) ON DELETE CASCADE 这样删除一个记录,那么外键连接到这个记录的都会被级联删除(包括子孙的子孙) -
有没有办法绕过这个不涉及更改类或方法的名称? 不,没有。 所有名为foo方法在class foo foo都是特殊的 - 它们是构造函数。 因此,它们不能被重写virtual成员函数。 Okay, here's my (slightly evil) solution... // Create an intermediate class which actually implements the foo method: class foo_intermediate : public base { public: ...
-
为什么父类的静态方法在子类已被覆盖时调用?(Why static method of parent class is called when subclass has already overridden it?)[2023-12-17]
静态方法解析总是基于Reference类型。 代码 superClassWithSuperCons.staticMethod(); superClassWithSubCons.staticMethod(); subClassWithSubCons.staticMethod(); 在编译后转换为这个 SuperClass.staticMethod(); SuperClass.staticMethod(); SubClass.staticMethod(); 由此可见,它是对SuperClass方法的调用而不 ... -
如果没有明确指出类名,SubClass的成员将无法从BaseClass访问DoSomething。 所以它实际上是“隐藏”给SubClass的成员,但仍然可以访问。 例如: public class SubClass : BaseClass { public static void DoSomething() { } public static void DoSomethingElse() { DoSomething(); // Calls SubC ...