Java继承_常见问题(七)终篇
来源:互联网 发布:性冲动 知乎 编辑:程序博客网 时间:2024/06/06 17:42
通过上文的描述,我们对java的继承有了基本的了解,下面,我们选几个例子,看看对继承理解的如何。
例1:
package com.ws.basic;class GameObject{int life;}class Creature extends GameObject {String mc="大法师";public void normal_attack() {System.out.println(mc+"在普通攻击!");}}class Hero extends Creature{String mc="圣骑士";}public class testjc { public static void main(String[] args) { Hero heroDfs = new Hero(); heroDfs.normal_attack(); }}结果:大法师在普通攻击!
此例中,Hero继承了Creature, 父类中的mc 变量被隐藏,所以此时如果直接打印:heroDfs的mc,得到的结果会是圣骑士。
但是因为Hero中没有同名的normal_attack方法,所以heroDfs.normal_attack()中调用的normal_attack()是继承自Creature类的,Creature类中的normal_attack()调用的是它本身的mc(Creature.mc),所以输出为:大法师。
例2:
package com.ws.basic;class GameObject{int life;}class Creature extends GameObject {String mc="大法师";public void normal_attack() {System.out.println(mc+"在普通攻击!");}}class Hero extends Creature{String mc="圣骑士";public void normal_attack() {System.out.println(mc+"在普通攻击!");}}public class testjc { public static void main(String[] args) { Hero heroDfs = new Hero(); heroDfs.normal_attack(); }}结果:圣骑士在普通攻击!这个上文描述过了,子类存在normal_attack(),父类方法被隐藏,所以返回圣骑士。
例3:
package com.ws.basic;class GameObject{int life;}class Creature extends GameObject {String mc="大法师";public void normal_attack() {System.out.println(mc+"在普通攻击!");}public void skill_attack() {System.out.println(mc+"在技能攻击!");}}class Hero extends Creature{String mc="圣骑士";public void normal_attack() {System.out.println(mc+"在普通攻击!");}}public class testjc { public static void main(String[] args) { Creature creature = new Hero(); creature.normal_attack(); creature.skill_attack(); System.out.println(creature.mc.toString()); }}结果:
圣骑士在普通攻击!
大法师在技能攻击!
大法师
根据在Java中,属性绑定到类型,方法绑定到对象。
第一句,和上文一样,子类的对象调用子类的方法,返回圣骑士;
第二句,子类的对象,调父类的方法,返回父类的大法师;
第三句,父类的属性,所以返回父类的大法师。
0 0
- Java继承_常见问题(七)终篇
- Java 基础之(七) 继承
- JAVA编程思想_笔记(七)
- JAVA学习(六):JAVA中的继承及其常见问题分析
- Java继承_重写(二)
- Java继承_基类Object(三)
- Java继承_初始化顺序(四)
- Java继承_隐藏(五)
- Java继承_内存分析(六)
- Java泛型_继承
- Java基础<七>_多线程
- 七牛---Java SDK常见问题总结
- Java学习笔记(七)——继承
- Java基础_面向对象_继承
- Java面向对象_继承
- java回调初步理解_(七)
- Java继承_概念与实现(一)
- (七)继承(一)
- 解决qt Creator更改UI界面后,运行无效果(linux下亲测)
- Selenium报错Unable to connect to host 127.0.0.1 on port 7055 after 45000 ms
- HDU-3578-双塔dp
- iOS 给 label 添加点击事件
- 二叉树9:树上最远距离练习题
- Java继承_常见问题(七)终篇
- 1,redis单节点的安装
- Java8 Lambda表达式
- Oracle循环语句
- 标准C++中的string类的用法总结
- webstorm 2017 激活破解
- 非完美算法之 ZJOI2017R2T3 字符串string
- webpack
- 聊天中的时间分割线 结合recylerview