(java)父类的静态方法为子类覆盖后,丢失多态性的问题
来源:互联网 发布:淘宝 刷单 没有权重 编辑:程序博客网 时间:2024/06/05 14:13
在继承机制中,类的静态方法只能被子类的静态方法覆盖,且覆盖以后没有多态(访问的是父类的静态方法);
示例程序:
class StaticTest1{ private static int c=2017; public static void print(){ System.out.println(c+" is a different year!"); }}public class Statictest extends StaticTest1{ private static int c=2018; public static void print(){ System.out.println(c+" will be a good year!"); } public static void main(String[] args) { StaticTest1 s=new Statictest(); s.print(); }}/*Output:2017 is a different year!*/
若print()方法为非静态方法, 输出的肯定是:“2018 will be a good year!”了。
在下面的程序中将会出现错误:
class StaticTest1{ private static int c=2017; /*public static void print(){ System.out.println(c+" is a different year!"); }*/}public class Statictest extends StaticTest1{ private static int c=2018; public static void print(){ System.out.println(c+" will be a good year!"); } public static void main(String[] args) { StaticTest1 s=new Statictest(); s.print(); }}
错误提示是:s.print()
找不到符号。
阅读全文
0 0
- (java)父类的静态方法为子类覆盖后,丢失多态性的问题
- java父类与子类的多态性
- 关于java子类方法覆盖(Override)父类方法时,该子类方法返回值的问题
- 子类已经覆盖了父类的静态方法,应该运行子类的静态方法才对呀?
- 有关java中子类覆盖父类的方法的返回值的问题
- Java静态方法的多态性
- Java子类与父类方法的隐藏和覆盖
- Java关于子类对父类私有方法覆盖的问题
- Java关于子类对父类私有方法覆盖的问题
- 子类覆盖父类的方法
- Java基础重温(六)子类与父类实例方法、静态方法的重写问题
- java 子类可以继承父类中的什么,子类中方法覆盖,final关键字的含义
- Java子类父类属性的覆盖
- Java子类父类属性的覆盖
- Java子类覆盖父类的规则
- Java 子类继承父类方法的重写(或者覆盖,override)
- 关于Java中子类能否继承和重写父类的静态方法问题
- c++ 父类指针转换为子类指针后调用子类的成员函数问题
- 写了15年代码,我终于总结出提升10倍效率的三件事
- glove背后的计算原理(进一步理解glove实现细节)
- 移动APP测试流程(大致)
- 201409-3 字符串匹配
- CentOS 6.5部署安装Memcached
- (java)父类的静态方法为子类覆盖后,丢失多态性的问题
- 1071分段函数
- navicat远程连接配置
- 多表逻辑删除(表之间无关系)
- tomcat6-源码分析(1)
- 聪明的学生C语言实现(栈)
- 数据结构实验之二叉树六:哈夫曼编码
- Linux下的目录及一些重要命令
- java面试题-多线程