今天看Java 编程思想的时候遇见一个问题,运行的结果和自己想想的完全不一样。先把代码贴出来!
//CanFight接口 interface Canfight { void fight(); } //ActionCharacter类 class ActionCharacter { public void fight() { System.out.println("Fight from ActionCharacter"); } } //Hero类继承ActionCharacter类实现Canfight接口 class Hero extends ActionCharacter implements Canfight { public void swin() {} public void fly() {} } public class Adventure { //参数为Canfight,向上转型,调用fight方法 public static void t(Canfight x) { x.fight(); } //参数为ActionCharacter类型,向上转型,调用fight方法 public static void w(ActionCharacter x) { x.fight(); } public static void main(String[] srgs) { Hero h = new Hero(); t(h); w(h); } } /*运行结果 Fight from ActionCharacter Fight from ActionCharacter */
在main方法中,调用t方法时,Hero的对象h向上转型为一个Canfight,然后在调用Canfight的fight方法,由于fight方法没有具体的实现,我认为应该不会有输出或者编译器报错。
事实结果应该是 Hero继承ActionCharacter,在运行时,将Hero中所有在ActionCharacter中能用到的东西全部复制到ActionCharacter中,这样在ActionCharacter类中就有了一个fight方法的具体实现。从另外一个角度讲就是在ActionCharacter类中有了接口Canfight中的fight方法的实现。
我自己分析的是这样的,希望大神给出指点。。。
相关推荐
java_中关于_继承_的一个小例子,java_中关于_继承_的一个小例子.rar
Java中对继承的练习,一个很小的程序,为初学者提供参考
本人研究Java有段时间了,现在把Java实现继承实例的代码上传,希望共同交流 qq 418586040
java继承作业.pdf
java 继承泛型类示例 java 继承泛型类示例 java 继承泛型类示例
java继承学习教案.pptx
这个对于初学都很有帮助的,不懂的可以来看看。这是我做JAVA的经验之谈。
利用Java继承机制。编写一个抽象的图形类Shape,里面有方法getArea()计算面积以及方法displayArea()显示面积,编写子类矩形类和三角型类分别实现两个方法。
第一次传东西,大家多多支持呀。一本部分java继承的课件
非常适合初学者的java继承学习 很经典因为我也是初学者!哈哈
java 继承和多态PPT教程
自己设计的一个程序,展现有继承结构的子类对象的初始化过程(包含构造方法、初始化值、父类构造方法、父类的初始化值的环节)
java继承课件,主要用于初学者自学java继承课件,主要用于初学者自学java继承课件,主要用于初学者自学java继承课件,主要用于初学者自学java继承课件,主要用于初学者自学
6.java继承的概念.zip6.java继承的概念.zip6.java继承的概念.zip6.java继承的概念.zip6.java继承的概念.zip6.java继承的概念.zip6.java继承的概念.zip6.java继承的概念.zip6.java继承的概念.zip6.java继承的概念.zip...
7.java继承的语法.zip7.java继承的语法.zip7.java继承的语法.zip7.java继承的语法.zip7.java继承的语法.zip7.java继承的语法.zip7.java继承的语法.zip7.java继承的语法.zip7.java继承的语法.zip7.java继承的语法.zip...
Java 继承知识点的相关学习。
java 继承 程序 学习java 必须要学习的知识,搞懂了 你java就入门了
Java中的继承作为Java面向对象三大特性之一,在知识点上而言,还是很多的,而且java的继承与覆盖基本是java笔试中常出的题,也比较绕,下面欧#柏泰#克和大家一起来学习下JAVA继承的相关知识点吧:
java继承习题精选 包含可很多习题 同时也副有正确答案