当前位置: 首页 > news >正文

有关java中static关键的重写问题

《Java编程思想》中这样提到“只有普通的方法调用可以是多态的”。说白了,就是静态方法不能实现重写这种多态。

JAVA静态方法形式上可以重写(只要子类不加@Override关键字修饰的话,即可编译通过),但从本质上来说不是JAVA的重写。因为静态方法只与类相关,不与具体实现相关,声明的是什么类,则引用相应类的静态方法(本来静态无需声明,可以直接引用),看下例子:

Java代码
  1. class Base{ 
  2.         static void a( ){System.out.println("A");  } 
  3.                  void b( ){System.out.println("B"); } 
  4. public class  Inherit extends Base{ 
  5.           static void a( ){System.out.println("C");  } 
  6.                   void b( ){System.out.println("D"); } 
  7.            public static void main(String args[]){ 
  8.                     Base b=new Base(); 
  9.                     Base  c=new Inherit(); 
  10.                     b.a(); 
  11.                     b.b(); 
  12.                     c.a(); 
  13.                     c.b(); 
  14.          } 
class Base{
        static void a( ){System.out.println("A");  }
                 void b( ){System.out.println("B"); }
}
public class  Inherit extends Base{
          static void a( ){System.out.println("C");  }
                  void b( ){System.out.println("D"); }
           public static void main(String args[]){
                    Base b=new Base();
                    Base  c=new Inherit();
                    b.a();
                    b.b();
                    c.a();
                    c.b();
         }
}

以上输出的结果是:A                            B                            A                            D 非静态方法 按重写规则调用相应的类实现方法,而静态方法只与类相关。

相关文章:

  • Tortoise SVN 创建分支与合并
  • Delphi 发送按键
  • Python - 默认参数的一次性求值
  • Internet TV 影音娱乐新生活
  • Linux 引导过程内幕
  • android service 学习(上)
  • Azure Redis Cache (4) 配置和管理Redis Cache
  • WPF VS Apollo
  • 开始忙碌
  • 常用CSS样式
  • [编]使用AutoCompleteExtender实现文本框自动匹配
  • vim替换^m字符
  • 数据结构 Joseph
  • android GC内存泄露问题
  • 协助ScriptCase7.1做些汉化矫正工作
  • Android 初级面试者拾遗(前台界面篇)之 Activity 和 Fragment
  • Brief introduction of how to 'Call, Apply and Bind'
  • CSS盒模型深入
  • ES学习笔记(10)--ES6中的函数和数组补漏
  • JavaScript设计模式与开发实践系列之策略模式
  • JAVA之继承和多态
  • Linux Process Manage
  • Linux下的乱码问题
  • php面试题 汇集2
  • Vue UI框架库开发介绍
  • Web设计流程优化:网页效果图设计新思路
  • WordPress 获取当前文章下的所有附件/获取指定ID文章的附件(图片、文件、视频)...
  • 包装类对象
  • 道格拉斯-普克 抽稀算法 附javascript实现
  • 利用jquery编写加法运算验证码
  • 如何用Ubuntu和Xen来设置Kubernetes?
  • 我建了一个叫Hello World的项目
  • 最简单的无缝轮播
  • 2017年360最后一道编程题
  • 阿里云移动端播放器高级功能介绍
  • 如何在招聘中考核.NET架构师
  • ​油烟净化器电源安全,保障健康餐饮生活
  • # Pytorch 中可以直接调用的Loss Functions总结:
  • (02)vite环境变量配置
  • (17)Hive ——MR任务的map与reduce个数由什么决定?
  • (4)事件处理——(7)简单事件(Simple events)
  • (C语言)输入一个序列,判断是否为奇偶交叉数
  • (NO.00004)iOS实现打砖块游戏(十二):伸缩自如,我是如意金箍棒(上)!
  • (react踩过的坑)Antd Select(设置了labelInValue)在FormItem中initialValue的问题
  • (附源码)springboot优课在线教学系统 毕业设计 081251
  • (每日持续更新)信息系统项目管理(第四版)(高级项目管理)考试重点整理 第13章 项目资源管理(七)
  • (四)Android布局类型(线性布局LinearLayout)
  • (转)jdk与jre的区别
  • . Flume面试题
  • .NET CORE使用Redis分布式锁续命(续期)问题
  • .Net IOC框架入门之一 Unity
  • .NET6 命令行启动及发布单个Exe文件
  • .NET轻量级ORM组件Dapper葵花宝典
  • .Net转Java自学之路—SpringMVC框架篇六(异常处理)
  • ?.的用法