静态方法大家应该都比较熟悉,在这里主要谈一下静态方法在继承时的一些注意事项。

1、父类方法如果是静态方法,子类不能覆盖为非静态方法;

2、父类方法如果是非静态方法,子类不能覆盖为静态方法;

3、父类静态方法可以被覆盖,允许在子类中定义同名的静态方法,但是没有多态。

下面对第3条特性进行一下代码演示:

class Demo{
 public static void display(){
  System.out.println("hello");
 }
}

class DemoTest extends Demo{
 public static void display(){
  System.out.println("nihao");
 }
}

public class TestStaticExtend{
 public static void main(String args[]){
  Demo d=new Demo();
  d.display();
  d=new DemoTest();//注意观察这条语句的输出,是输出hello还是nihao
  d.display();
 }
}

析:运行该程序你会发现输出的是两个hello,这就是上面所说的“没有多态”,当你将红色的static去掉之后再运行会发现输出的是hello和nihao,此时恢复了多态。

static 继承的更多相关文章

  1. 关于static继承的问题

    c++primer 15.2.7节关于static继承的意思是,父类和子类共享static函数或者static成员变量,并且子类要访问还要受它们的权限限制,下面是看到的另一个例子 class Base ...

  2. 05 面向对象:构造方法&static&继承&方法 &final

    构造方法及其重载: /* 构造方法格式特点 * a:方法名与类名相同(大小也要与类名一致) * b:没有返回值类型,连void都没有 * c:没有具体的返回值return; * 构造方法的重载 * 重 ...

  3. PHP-静态方法(static)继承等分析

    <?php class A { const CONST_NAME = 'A'; public static $static_name = 'A'; public static $static_n ...

  4. C++杂分析

    class word{ public: word(){cout<<"word constructure \n";} word(int i){cout<<&q ...

  5. ruby里面module和class的区别

    一句话概括,就是 class可以实例化 module不可以 别的都一样 关于继承的一点区别 class是使用<作为继承的关键字,只支持单继承 module是使用include来做实例继承(实例化 ...

  6. Java中的继承与静态static等的执行先后顺序

    package extend; public class X { Y y=new Y(); static{  System.out.println("tttt"); } X(){  ...

  7. Unit04 - 继承的意义(下) 、 访问控制 、 static和final

    Unit04  -  继承的意义(下) . 访问控制 . static和final 1.方法的重写(Override):重新写.覆盖  1)发生在父子类中,方法名称相同,参数列表相同,方法体不同  2 ...

  8. JavaScript实现类的private、protected、public、static以及继承

    JavaScript中的类 JavaScript实际上是一种弱类型语言,与C++和Java等语言不同.因此,在JavaScript中,没有强调类(class)这一概念,但实际运用中,类还是很重要的,比 ...

  9. javaSE_08Java中static、继承、重写

    一.Static 学习静态这个关键字,关键是抓住两个点: 1,关注其语法特点 2,关注其使用场景 案例讲解: 我们先从静态变量开始,当一个成员变量加上static修饰之后,会是一个什么效果? 比如创建 ...

随机推荐

  1. 第二章 Js语法

    来博客园已经有二年了,看了看自己发布的内容,少的可怜.完全背离了自己的初衷.how time fly,想着自己两年后,还是没写什么东西,岂不是白白浪费时间!有感于王宝强说的那句话,“好好活着,做有意义 ...

  2. 七、Delphi10.3读取JSON数组

    一.Delphi读取JSON数组是非常方便的,首先我们网上找一段JSON数据 { "error": 0, "status": "success&quo ...

  3. 20155237 2016-2017-2 《Java程序设计》第4周学习总结

    20155237 2016-2017-2 <Java程序设计>第4周学习总结 教材学习内容总结 第六章 继承与多态 继承符合DRY原则. extends UML 多态: 继承可以复用代码, ...

  4. java.lang.IllegalStateException: ApplicationEventMulticaster not initialized

    <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring- ...

  5. [Oracle]如何查看一个数据文件是否是自动扩展

    开始 SQL> col file_id format 99SQL> col file_name format a50SQL> col tablespace_name format a ...

  6. 【转载】基于MFC的ActiveX控件开发(2)

    原文:http://iysm.net/?p=118 2.生成并测试控件 好,现在我们就可以先来生成一下这个项目,当然到目前我们只是用系统自动生成的一个控件项目,什么功能都没有,只是一个空框架. 几秒钟 ...

  7. Deep Learning 资料总结

    http://colah.github.io/posts/2014-03-NN-Manifolds-Topology/ : 理解神经网络   ELU:

  8. Mac下 Windows 7 虚拟机搭建SVN服务器的详细步骤(此方法同样适用于单纯的Windows系统搭建SVN)

    内容中包含 base64string 图片造成字符过多,拒绝显示

  9. org.springframework.mail.MailSendException: Failed messages: javax.mail.SendFailedException: Invalid Addresses

    一.问题分析 org.springframework.mail.MailSendException: Failed messages: javax.mail.SendFailedException: ...

  10. python 排序模块 ———— heapq(学习笔记)

    from heapq import * def heasort(initi):# 排序 h=[] for value in initi: heappush(h,value)#将每一个item进入hea ...