关于static的继承问题
2024-09-07 04:02:04
今天研究了一下被static修饰的变量和方法,在子类中继承的问题,网上也看了别人的博客,自己也动手试了一下
代码如下
//父类
package com.xujingyang.test; public class Father {
public static String staticString="父类中的静态变量";
public String str="父类中的非静态变量"; public static void staticMethod(){
System.out.println("父类中的静态方法");
}
public void nostaticMethod() {
System.out.println("父类中的非静态方法");
}
} //子类
package com.xujingyang.test; public class Son extends Father {
public static String staticString="子类中的静态变量";
public String str="子类中的非静态变量"; public static void staticMethod(){
System.out.println("子类中的静态方法");
}
public void nostaticMethod() {
System.out.println("子类中的非静态方法");
}
} //子类 package com.xujingyang.test; public class A extends Father{ } //测试方法
package com.xujingyang.test; public class Test {
public static void main(String[] args) {
Son son=new Son();
System.out.println(son.str);
System.out.println(son.staticString);
son.staticMethod();
son.nostaticMethod();
System.out.println("==============================");
Father f=new Son();
System.out.println(f.str);
System.out.println(f.staticString);
f.staticMethod();
f.nostaticMethod();
System.out.println("==============================");
A f2=new A();
System.out.println(f2.str);
System.out.println(f2.staticString);
f2.staticMethod();
f2.nostaticMethod();
}
}
结果如下:
得出如下结论:父类中的静态成员变量和方法是可以被子类继承的,但是不能被自己重写,无法形成多态.
我发现,变量时无法形成多态的,网上别人说,子类把父类的变量继承过来,内存中会存在两个同名的变量,父类的变量会出现在子类变量之前.如下图:
最新文章
- eclipse最有用快捷键整理
- [转]java.lang.OutOfMemoryError:GC overhead limit exceeded
- 编写jquery常用插件的基本格式
- 小说一下case ~
- Repository
- keepalived +mysql 实战
- c++ 一个类使用另外一个类的变量或方法
- 王家林的“云计算分布式大数据Hadoop实战高手之路---从零开始”的第十一讲Hadoop图文训练课程:MapReduce的原理机制和流程图剖析
- iOS 8 Handoff 开发指南
- SEO优化:浅析关键词出现在网站哪些地方更有利?
- vue关于为空使用默认值
- Akka并发编程框架 -概念模型(Akka.net或者Orleans)
- 加一的golang实现
- Java 错误: 找不到或无法加载主类,问题集合
- Liferay平台开发使用详细PPT演示文稿
- form表单的默认行为
- HTML Tags
- numpy中arange()和linspace()区别
- mt7620 wireless驱动特性意外发现
- vue项目修改favicon
热门文章
- 解决:pycharm连接github报错 Can't login: Received fatal alert: protocol_version
- MinGW main()
- (链接)xcode7,ios9 部分兼容设置
- mybatis报Error updating database. Cause: java.lang.IllegalArgumentException: invalid comparison: java.util.Date and java.lang.String
- Hello Swift
- hadoop2.5.2 安装与部署
- mxnet(gluon)—— 模型、数据集、损失函数、优化子等类、接口大全
- 关于 freetds pymssql 的安装部署
- flash、js 函数 互相调用
- unity编译android包时提示android sdk路径有问题