结论:java中静态属性和静态方法可以被继承,但是没有被重写(overwrite)而是被隐藏.

原因:

1). 静态方法和属性是属于类的,调用的时候直接通过类名.方法名完成对,不需要继承机制及可以调用。如果子类里面定义了静态方法和属性,那么这时候父类的静态方法或属性称之为"隐藏"。如果你想要调用父类的静态方法和属性,直接通过父类名.方法或变量名完成,至于是否继承一说,子类是有继承静态方法和属性,但是跟实例方法和属性不太一样,存在"隐藏"的这种情况。

2). 多态之所以能够实现依赖于继承、接口和重写、重载(继承和重写最为关键)。有了继承和重写就可以实现父类的引用指向不同子类的对象。重写的功能是:"重写"后子类的优先级要高于父类的优先级,但是“隐藏”是没有这个优先级之分的。

3). 静态属性、静态方法和非静态的属性都可以被继承和隐藏而不能被重写,因此不能实现多态,不能实现父类的引用可以指向不同子类的对象。非静态方法可以被继承和重写,因此可以实现多态。

例子:

package com.study.test;

public class A { //父类

public static String staticStr = "A静态属性";

public String nonStaticStr = "A非静态属性";

public static void staticMethod(){

System.out.println("A静态方法");

}

public void nonStaticMethod(){

System.out.println("A非静态方法");

}

}

package com.study.test;

public class B extends A{//子类B

public static String staticStr = "B改写后的静态属性";

public String nonStaticStr = "B改写后的非静态属性";

public static void staticMethod(){

System.out.println("B改写后的静态方法");

}

}

package com.study.test;

public class C extends A{//子类C继承A中的所有属性和方法

}

package com.study.test;

public class StaticExtendsTest {

public static void main(String[] args) {

C c = new C();

System.out.println(c.nonStaticStr);

System.out.println(c.staticStr);

c.staticMethod();//输出的结果都是父类中的非静态属性、静态属性和静态方法,推出静态属性和静态方法可以被继承

System.out.println("-------------------------------");

A c1 = new C();

System.out.println(c1.nonStaticStr);

System.out.println(c1.staticStr);

c1.staticMethod();//结果同上,输出的结果都是父类中的非静态属性、静态属性和静态方法,推出静态属性和静态方法可以被继承

System.out.println("-------------------------------");

B b = new B();

System.out.println(b.nonStaticStr);

System.out.println(b.staticStr);

b.staticMethod();

System.out.println("-------------------------------");

A b1 = new B();

System.out.println(b1.nonStaticStr);

System.out.println(b1.staticStr);

b1.staticMethod();//结果都是父类的静态方法,说明静态方法不可以被重写,不能实现多态

}

}

JAVA静态方法是否可以被继承 6,JAVA静态方法是否可以被继承?相关推荐

  1. java接口是静态_Java接口(静态方法、私有方法)

    静态方法的使用 静态和对象不要紧,只和类有关系.java 接口中的私有方法code package cn.itcast.day10.demo01; /* 从Java 8开始,接口当中容许定义静态方法. ...

  2. java静态接口方法使用_使用静态方法对接口进行Java编程

    java静态接口方法使用 In this quick tutorial, we would understand how static methods on interfaces helps us d ...

  3. Java单元测试实践-06.Mock后Stub静态方法

    Java单元测试实践-00.目录(9万多字文档+700多测试示例) https://blog.csdn.net/a82514921/article/details/107969340 1. Mock后 ...

  4. java基础(十三)-----详解内部类——Java高级开发必须懂的

    java基础(十三)-----详解内部类--Java高级开发必须懂的 目录 为什么要使用内部类 内部类基础 静态内部类 成员内部类 成员内部类的对象创建 继承成员内部类 局部内部类 推荐博客 匿名内部 ...

  5. 【Java面试宝典】深入理解JAVA虚拟机

    一.运行时数据区域 线程隔离:线程隔离的意思,就是给不同的线程多分配的资源用,以做到不争用. 线程共享:线程共享就是资源只有一个没有办法分配更多,只能共享. Java虚拟机管理的内存包括几个运行时数据 ...

  6. java修饰方法有哪些,探讨Java语言中那些修饰符

    一.在java中提供的一些修饰符,这些修饰符可以修饰类.变量和方法,在java中常见的修饰符有:abstract(抽象的).static(静态的).public(公共的).protected(受保护的 ...

  7. java内部格式_详解java内部类的访问格式和规则

    详解java内部类的访问格式和规则 1.内部类的定义 定义一个类来描述事物,但是这个事物其中可能还有事物,这时候在类中再定义类来描述. 2.内部类访问规则 ①内部类可以直接访问外部类中的成员,包括私有 ...

  8. Java高级进阶学习资料!java开发环境的搭建是什么意思

    1. static 和 final 的用法 static 的作用从三个方面来谈,分别是静态变量.静态方法.静态类. 静态变量:声明为 static 的静态变量实质上就是全局变量,当声明一个对象时,并不 ...

  9. java工程师面试宝典_【Java工程师面试宝典】学习说明_互联网校招面试真题面经汇总_牛客网...

    ● 请你讲讲Java里面的final关键字是怎么用的? 考察点:关键字 参考回答: 当用final修饰一个类时,表明这个类不能被继承.也就是说,如果一个类你永远不会让他被继承,就可以用final进行修 ...

  10. 圣思园java.doc_北京圣思园java课堂笔记.doc

    北京圣思园java课堂笔记.doc JAVASELesson11.类是一种抽象的概念,对象是类的一种具体表示形式,是具体的概念.先有类,然后由类来生成对象(Object).对象又叫做实例(Instan ...

最新文章

  1. [k8s] 第二章 十分钟带你搭建k8s集群环境
  2. CSS3背景线性渐变
  3. Leetcode 191. 位1的个数 解题思路及C++实现
  4. apollo 配置中心_apollo-1:apollo配置中心单机模拟分布式部署
  5. OpenGL:使用FBO为渲染对象并从GPU取出存图
  6. 关于Windows 2003 sp1不能打开CHM文件的问题
  7. PREV-55 小计算器 (进制转换)
  8. 软件测试工作中的沟通问题
  9. python环境准备_一键实现Python环境准备
  10. Atitit 常见dj机功能 目录 1.1. PLAY/PAUSE:播放及暂停,这个和普通的音乐播放设备的功能都是一样的。 1 1.2. Direction:FWD正方向转动、REV反方向转动,音乐
  11. TIM网盘批量下载方法
  12. 使用python处理wps表格_Python处理Word文件的实用姿势
  13. maven中resource配置详解
  14. 滴滴秋招提前批正式开始,现在投递免笔试
  15. 微信公众号网页授权多域名解决方案
  16. python和scre_python学习日志10
  17. 行走的Offer收割机,首次公布Java10W字面经,Github访问量破百万
  18. 程序员圈 内的 鄙视链
  19. JetBrains系列pycharm等设置主题皮肤
  20. C#用Replace把字符替换成空

热门文章

  1. golang install/build 生成的文件命名和路径
  2. linux elf 文件查看工具 readelf
  3. linux libffi 简介 高级语言互调库
  4. python文件的编译
  5. Direct2D介绍
  6. 两个数之和等于第三个数
  7. Texmaker使用方法、Latex的优缺点
  8. php 复制文件夹并压缩到最小_php在线压缩并下载压缩文件的方法
  9. mysql 限定查询_MySQL Limit 限定查询记录数
  10. linux 给用户tmp权限,linux用户以及权限