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();} }如上代码,表名子类继承了父类-------------------------class Parent {public static void say() {System.out.println("parent");}}class Son extends Parent {public static void say() {System.out.println("son");}}public class Test { public static void main(String[] args) { Parent p = new Son();p.say();} }如上代码,表明static方法不能被重写
解决方案三:
static方法可以被继承,如父类定义一个方法,子类的实例也可以调用该方法但是,需要注意的是,静态方法不能被重写,静态方法没有多态的概念,如果子类定义了跟父类一样签名的静态方法,那么只是对父类方法的隐藏
解决方案四:
引用You can write a new instance method in the subclass that has the same signature as the one in the superclass, thus overriding it.You can write a new static method in the subclass that has the same signature as the one in the superclass, thus hiding it. 静态方法是不会继承的,静态方法属于类方法,和类紧密关联的,如果子类定义了同名的静态方法,将会隐藏。但还是可以通过类名来访问的。
解决方案五:
static方法和实例无关,只和对象相关,不能被继承。static方法的调用只需要使用类限定名即可,如Integer.parseInt()。非static方法,如果调用需要先new 对象,然后通过对象调用。class A{ public static void f() { System.out.println("A.f()"); }}class B extends A{ public static void f() { System.out.println("B.f()"); } public static void main(String[] args) { A a = new B(); B b = new B(); B c = (B)a; A.f(); B.f(); a.f(); b.f(); c.f(); }}结果:A.f()B.f()A.f()B.f()B.f()
解决方案六:
不可以继承。
解决方案七:
可以啊。在一般的类里面可以,在static类中不行

时间: 2024-08-02 05:10:13

static方法能够继承吗的相关文章

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

问题描述 RT.java能办到吗?或者有没有其他办法? 解决方案 解决方案二:父类中的static方法是不可以重写的解决方案三:引用1楼jqctop1的回复: 父类中的static方法是不可以重写的 是的,我觉得单靠语法层面是不能处理这个问题的.解决方案四:publicabstractclassTest{publicstaticvoidf(){thrownewRuntimeException("Youmustoverridethisstaticmethod.");}publicstat

java中static变量和static方法以及普通方法在那个内存中存储呢? 请高手指点,谢谢

问题描述 java中static变量和static方法以及普通方法在那个内存中存储呢? 请高手指点,谢谢 栈内存:局部变量和对象的引用变量: 堆内存:对象: 以上是我所知道的,那么static变量和static方法以及普通方法在那个内存中存储呢? 请高手指点,谢谢 解决方案 static和普通方法都存在堆内存中,堆内存有个永久区permgen,这里面会存类信息. 所以不断的加载类或jar包可能出现permgen oome的错误. static是在堆内存的数据区. 解决方案二: java stat

java static-假设有一个类,我只对这个类的引用做一个声明,那么这个类中的static方法会被初始化吗

问题描述 假设有一个类,我只对这个类的引用做一个声明,那么这个类中的static方法会被初始化吗 假设下面这种情况,test1中的do方法会被初始化吗? public class test{ public static void main(string []args){ test1 t: } } class test1{ int i: static void do(){} } 解决方案 第一次访问的含义是,访问了这个静态类中的任何方法.属性.字段,那么所有的属性都会被初始化. 解决方案二: 方法

synchronized 修饰在 static方法和非static方法的区别

Java中synchronized用在静态方法和非静态方法上面的区别 在Java中,synchronized是用来表示同步的,我们可以synchronized来修饰一个方法.也可以synchronized来修饰方法里面的一个语句块.那么,在static方法和非static方法前面加synchronized到底有什么不同呢?大家都知道,static的方法属于类方法,它属于这个Class(注意:这里的Class不是指Class的某个具体对象),那么static获取到的锁,是属于类的锁.而非stati

继承 覆盖 多态-java私有方法可以继承吗

问题描述 java私有方法可以继承吗 私有的成员和方法可以在子类中被继承吗,如果不能为什么不能,求解详细点 解决方案 java继承中的"缺陷":"覆盖"私有方法java继承中的"缺陷":"覆盖"私有方法Java 继承与初始化."覆盖"私有方法 解决方案二: 首先说私有的成员和方法不能被子类继承,这是java语法规范强制规定,也是面向对象设计的原则. 其次,脱离具体的语言,从面向对象角度来看,用private

方法嵌套方法-java中非static方法内部能否嵌套非static方法?

问题描述 java中非static方法内部能否嵌套非static方法? class NiMingLei { public static void main(String[] args) { Outer a= new Outer(); a.function(); } } class Outer { static int y=4; void function() { void show() { System.out.println(123); } class Inter { void method(

JS中通过call方法实现继承

原文:JS中通过call方法实现继承   讲解都写在注释里面了,有不对的地方请拍砖,谢谢!   <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>JS通过call方法实现继承</title> </head> <body> <script type="text/javascript"> /* js中的继承有多种实现方式,

php构造方法中析构方法在继承中的表现_php技巧

本文为大家分享了php构造方法之析构方法在继承中的表现,供大家参考,具体内容如下 子类中没有定义构造方法时,会自动调用父类的构造方法.因此实例化子类时,需按照父类的构造方法的形式进行. 修改为: 子类定义了自己的构造方法,则不会自动调用父类的构造方法,但可以手动调用:parent::__construct(); 但通常,在子类,很多时候,在构造方法中,都应该(需要)去调用父类的构造方法以节省代码,增加可读性: 子类中没有定义析构方法时,会自动调用父类的析构方法.子类定义了自己的析构方法,则不会自

关于Java之static方法详解

1.关于,main方法是static方法,但是为什么非要是static. 原因就是,如果一个类她定义了main方法的话,那么她的main方法会在这个类的构造函数运行之前被调用. 由于main方法运行的时候尚未在jvm里生成相应对象(构造函数未被执行),所以要声明 static. 2.这就涉及到下面的问题,和其他任何方法一样,static方法可以创建或使用与其它类型相同的被命名对象,因此,static方法常常拿来做'牧羊人'的角色,负责看护与其隶属同一类型的实例群." 其实作者的意思是说,按照go