面试题:Java静态/非静态方法重写
1.非静态方法重写
public class Test {
public static void main(String[] args) throws Exception {
Tree pine = new Pine();
Tree oak = new Oak();
say(pine);
say(oak);
}
private static void say(Tree tr) {
tr.say();
}
} class Tree {
public void say() {
System.out.println("Tree");
}
}
class Pine extends Tree {
public void say() {
System.out.println("Pine");
}
}
class Oak extends Tree {
public void say() {
System.out.println("Oak");
}
} 程序执行后输出:
Pine
Oak
2.静态方法重写
class Tree {
public static void say() {
System.out.println("Tree");
}
}
class Pine extends Tree {
public static void say() {
System.out.println("Pine");
}
}
class Oak extends Tree {
public static void say() {
System.out.println("Oak");
}
} 程序执行后输出:
Tree
Tree
3.原因分析
静态方法是属于类的,理论上可以重写,但其不具有多态性。因为多态性指在运行时确定类型,静态方法却是在编译时就确定类型的。
多态性只与实例、非静态方法相关。
面试题:Java静态/非静态方法重写的更多相关文章
- java 静态变量&静态方法
1. 静态变量是static修饰的成员变量(类变量),若无static修饰,则是实例变量.静态变量是一种全局变量,它属于某个类,不属于某个对象实例,是在各对象实例间共存. 访问静态变量直接通过类名 ...
- Java 静态static 关键字作用
静态的方法1.可以通过类名打点访问2.不能使用this关键字3.不能访问非静态的属性和方法 /* * 静态的方法: * 1.属于类的方法,可以通过类名打点访问 * 2.方法中不能使用this关键字 * ...
- PHP中静态(static)调用非静态方法详解
1.PHP中可以静态调用非静态方法么? 今天我被问到PHP中可不可以使用 className::methodName() 的方法来调用一个没有声明static的方法.在我的印象中,我好像是见过这种用法 ...
- [转]Java静态方法为什么不能访问非静态方法
非静态方法(不带static)可以访问静态方法(带static),但是反过来就不行,为什么呢? ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 publi ...
- java静态与非静态区别
这里的静态,指以static关键字修饰的,包括类,方法,块,字段. 非静态,指没有用static 修饰的. 静态有一些特点: 1.全局唯一,任何一次的修改都是全局性的影响 2.只加载一次,优先于非静态 ...
- JAVA静态和非静态内部类
JAVA静态和非静态内部类 一直对java的静态和非静态内部类的东东理解不清楚,今天测试了一下,下面把测试结果记录一下,加深印象.用于以后查找. 直接上代码. package com.test.xml ...
- <转>java中静态方法和非静态方法的存储
Java中非静态方法是否共用同一块内存? 将某 class 产生出一个 instance 之后,此 class 所有的 instance field 都会新增一份,那么所有的 instance met ...
- 从JVM内存管理的角度谈谈JAVA类的静态方法和静态属性
在JVM中,内存分为两个部分,Stack(栈)和Heap(堆),这里,我们从JVM的内存管理原理的角度来认识Stack和Heap,并通过这些原理认清Java中静态方法和静态属性的问题. 一般,JVM的 ...
- Java静态方法为什么不能访问非静态方法
转载自:https://www.2cto.com/kf/201502/375549.html 非静态方法(不带static)可以访问静态方法(带static),但是反过来就不行,为什么呢? publi ...
随机推荐
- linux下启动和关闭网卡命令及DHCP上网
ifup.ifdown:如果在 /etc/sysconfig/network-scripts里面的ifcfg-ethx等文件存在的话,就可以通过ifdown或ifup来实现网卡的开和关,例如:ifup ...
- HDU 4810 这道题 是属于什么类型?
统计每一位出现1的个数 求组合数 直接贴代码 #include <iostream> #include <cstdio> #include <cmath> #in ...
- oracle RAC调整数据文件大小并移动表到指定的表空间
一.Oracle RAC 调整表空间数据文件大小 1.先查找出表空间对应的数据文件路径: select file_name,tablespace_name from dba_data_files ; ...
- eclipse 添加jar包的方式
参考资料地址:http://blog.csdn.net/mazhaojuan/article/details/21403717
- 网页title标题的闪动效果
通过网页title来提示用户有新消息这个功能很常见,比如现在的微博,还有一些邮箱,这个功能都很常见. 显示信息数: <input type="text" id="t ...
- js 16进制字符串互转
/** * 16进制转换为字符串 * @param hex * @returns {*} */ function hexToString(hex) { var tmp = ''; if (hex.le ...
- thinkPHP中省市级联下拉列表
公共函数放置位置common文件夹下common.php文件(此段代码也可放置在要使用的控制器中) 封装的下拉列表函数代码: /** * 根据列表拼装成一个下拉列表 ADD BY CK * @para ...
- python functools.wraps装饰器模块
# -*-coding=utf-8 -*-#实现一个函数执行后计算执行时间的功能 __author__ = 'piay' import time, functools def foo(): ''' 定 ...
- Android使用xml中定义的动画效果
Animation animation = AnimationUtils.loadAnimation(getActivity(), R.anim.zqrl_out); animation.setFil ...
- strace基本操作
可以发现很多真正在系统层面发生的调用,以及很细微的返回错误信息,用于调试工作.(比如,软件出错,或是性能变慢...) strace -p 32000 -o strace.txt 基本上完整的用法是这样 ...