java中static方法的继承性
首先需要知道的是,java中所有的public实例方法都默认是virtual的,static方法不是virtual的,所以static方法可以被覆盖(new),但不可被重写(override)
1.被继承
父类:
public class Parents{
public static void staticFunction(){
System.out.println("public static function of parents");
}
public void callPrintName(){
this.printName();
}
}
子类:
public class Child extends Parents{
public static void main(String[] args){
Child child=new Child();
child.staticFunction();
}
}
输出
public static function of parents
说明static方法可以被继承
2.被覆盖(new)
父类:
public class Parents{
public static void staticFunction(){
System.out.println("public static function of parents");
}
public void callPrintName(){
this.printName();
}
}
子类:
public class Child extends Parents{
public static void staticFunction(){
System.out.println("public static function of Child");
}
public static void main(String[] args){
Child child=new Child();
child.staticFunction();
}
}
输出:
public static function of Child
上面输出是public static function of Child,说明static已经被覆盖(new)了
3.不是virtual,即不能实重写(override)
//父类
public class Parents{
private void printName(){
System.out.println("private function of parents");
}
public static void staticFunction(){
System.out.println("public static function of parents");
}
public void callPrintName(){
this.printName();
}
} //子类
public class Child extends Parents{
public static void staticFunction(){
System.out.println("public static function of Child");
}
public static void main(String[] args){
Parents child=new Child();
child.staticFunction();
} }
输出:
public static function of parents
上面的child是属于Child实例,用Parents引用,输出的是public static function of parents,说明static方法不是virtual的,不能被重写(override)。
java中static方法的继承性的更多相关文章
- Java中static方法
今天学习到了并且应用到了java中的静态方法,并且了解到它的好处与缺点. ● 生命周期(Lifecycle): 静态方法(Static Method)与静态成员变量一样,属于类本身,在类装载的时候被装 ...
- Java学习笔记十七:Java中static使用方法
Java中static使用方法 一:Java中的static使用之静态变量: 我们都知道,我们可以基于一个类创建多个该类的对象,每个对象都拥有自己的成员,互相独立.然而在某些时候,我们更希望该类所有的 ...
- java中static变量和方法的总结
转自:http://blog.csdn.net/haobo920/article/details/5921621 java中static变量和方法的总结 java中一切皆是对象 一个类中对象的定义一般 ...
- Java09-java语法基础(八)java中的方法
Java09-java语法基础(八)java中的方法 一.方法(函数/过程):是一个程序块,可以完成某种功能 1.java中方法的定义格式 [访问控制修饰符] 返回值类型 方法名(参数列表){ 方 ...
- Java中的方法应用
一.如何定义java中的方法 所谓方法,就是用来解决一类问题的代码的有序组合,是一个功能模块. 语法: 1. 访问修饰符:方法允许被访问的权限范围, 可以是 public.protected.priv ...
- c#和java中的方法覆盖——virtual、override、new
多态和覆盖 多态是面向对象编程中最为重要的概念之一,而覆盖又是体现多态最重要的方面.对于像c#和java这样的面向对象编程的语言来说,实现了在编译时只检查接口是否具备,而不需关心最终的实现,即最终的实 ...
- java中static关键字的作用
java中static关键字主要有两种作用: 第一:为某特定数据类型或对象分配单一的存储空间,而与创建对象的个数无关. 第二,实现某个方法或属性与类而不是对象关联在一起 简单来说,在Java语言中,s ...
- Java中static的用法,初始化块
使用 Arrays 类操作 Java 中的数组语法: Arrays.sort(数组名); 可以使用 sort( ) 方法实现对数组的排序,只要将数组名放在 sort( ) 方法的括号中,就可以完成对该 ...
- java中的方法method
java中的方法必须存在于类class里,不能独立存在.类是描述具有某种特征的事物,方法则是这类 事物具有的某种功能,通过调用方法可以实现某种特定的功能.方法名一般以小写的动词开头. 例: publi ...
随机推荐
- Ext.Net安装和应用
1.最新版本 2.打开文件,将包含以下文件: Ext.Net.dll Ext.Net.Utilities.dll Ext.Net.xml Newtonsoft.Json.dll Newto ...
- 【leetcode 138. 复制带随机指针的链表】解题报告
方法一:递归 unordered_map<Node*,Node*> dict; Node* copyRandomList(Node* head) { if (!head) return h ...
- 5.EM
- request payload
最近在调试代码时发现有Request Payload的情况,从网上查一些文件,也都有较多的描述.下面我只是说明一下大家没有注意的地方 关于HTTP请求,都是通过URL及参数向后台发送数据.主要方式有G ...
- Liunux疑问
Liunux疑问 其中的各种软件的安装有模糊的点,待解决 待解决 待解决 待解决 ... ...
- Servlet中Web.xml配置详解(二)
5.2 分配JSP初始化参数给JSP页面提供初始化参数在三个方面不同于给servlet提供初始化参数.1)使用jsp-file而不是servlet-class.因此,WEB-INF/web.xml文件 ...
- vector<vector<int>> 使用简单示例
#include <iostream> #include <vector> using namespace std; int main() { vector<vector ...
- python 连接数据库 pymysql模块的使用
一 Python3连接MySQL 本文介绍Python3连接MySQL的第三方库--PyMySQL的基本使用. 1 PyMySQL介绍 PyMySQL 是在 Python3.x 版本中用于连接 MyS ...
- ES6,CommonJS 区别
Javascript,javascript是一种脚本编程语言,有自己独立的语法与语义,没有javascript,也就没有其他的那些概念了. 关于ES6,可直接理解为javascript的增强版(增加了 ...
- tp5 路由定义
路由定义 | Route::rule('路由表达式','路由地址','请求类型'); > route 目录下的任何路由定义文件都是有效的,默认的路由定义文件是 route.php > 可以 ...