java--类继承和实现的接口中含有相同的方法
2013-10-19 15:14
441 查看
首先,说一下,当某一个类实现了两个接口的时候,两个接口中存在两个相同的方法,在实现的类中只需实现一个方法的方法体。
当一个类继承一个类,并且实现一个或者多个接口的时候,其中,父类和父接口中存在相同的方法。
如果子类中存在该方法的实现体或者说是覆盖,则使用该类的对象去掉用该方法时候,其实掉用的是来自接口的实现方法,而不是来自父类方法的覆盖。
如果子类中不存在该方法的实现[或者覆盖],在使用该类对象掉用该方法的时候,就会使用从父类继承的方法。同时将这个从父类继承来的方法当作接口方法的实现,也就可以不再实现接口的方法体。
另外值得注意的就是,extends & implements 的书写顺序不能改变。
为了方便记忆可以认为:接口的优先级别要高于父类。
此处附上代码:
View Code
当一个类继承一个类,并且实现一个或者多个接口的时候,其中,父类和父接口中存在相同的方法。
如果子类中存在该方法的实现体或者说是覆盖,则使用该类的对象去掉用该方法时候,其实掉用的是来自接口的实现方法,而不是来自父类方法的覆盖。
如果子类中不存在该方法的实现[或者覆盖],在使用该类对象掉用该方法的时候,就会使用从父类继承的方法。同时将这个从父类继承来的方法当作接口方法的实现,也就可以不再实现接口的方法体。
另外值得注意的就是,extends & implements 的书写顺序不能改变。
为了方便记忆可以认为:接口的优先级别要高于父类。
此处附上代码:
package Demo; interface CanFight { void fight(); } interface CanSwim { void swim(); } interface CanFly { void fly(); } class ActionCharactor { public void fight() { System.out.println("fight() from class "); } } class Hero extends ActionCharactor implements CanFight, CanSwim, CanFly { public void swim() { System.out.println("Hero swim."); } public void fly() { System.out.println("Hero fly."); } public void fight(){ System.out.println("Hero can fight."); } } public class Demo1_1 { public static void t(CanFight x) { x.fight(); } public static void u(CanSwim s) { s.swim(); } public static void w(ActionCharactor x) { x.fight(); } public static void v(CanFly x) { x.fly(); } public static void main(String[] args) { // 向上转型 Hero hero = new Hero(); t(hero); u(hero); w(hero); v(hero); ActionCharactor a = new ActionCharactor(); a.fight(); } }
View Code
相关文章推荐
- Java类实现含有相同方法签名的两个接口
- 【Java面试题】60 接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承具体类(concrete class)? 抽象类中是否可以有静态的main方法?
- 类继承多个接口有相同的方法时,怎么办?(接口显式实现的作用)
- Java小程序---接口中抽象方法的实现(解决了JAVA语言不能多继承的问题)
- java中子类继承父类和实现接口有同名方法怎么处理
- 【转载】JAVA中线程的两种实现方法-实现Runnable接口和继承Thread类
- java中的实现接口和含有抽象方法的枚举类
- Java 实现多线程的3种方法:继承Thread类;实现Runnable接口;实现Callable接口。具体代码实现实例
- Java中一个类怎么实现两个接口中相同名字的抽象方法
- java创建多线程的两种方法(继承Thread类/实现Runnable接口)
- 关于java中继承多接口实现其中同名方法的问题
- Java子类的父类和要实现的接口有相同的方法/函数会冲突吗
- java Thread学习-Thread的实现方法 继承Thread,实现Runnable 接口
- 2018/01/07JAVA 基础 / 接口与继承:重写【子类继承并覆盖父类的对象方法】、隐藏【子类继承并覆盖父类的类方法】与实现类实现接口方法の区别
- Mono 继承一些特殊接口中带有 IJavaObject, IDisposable 接口的实现方法
- JAVA 线程的两种基本实现方法(继承Thread类和实现Runnable接口)
- java实现多线程的两种方式继承Thread类和实现Runnable接口的方法
- java 学习 私有类实现接口 ,一个类继承来的方法和接口实现方法重复第八天
- JAVA 两种方法实现多线程(继承Thread和实现Runnable接口)
- 关于抽象类和接口中含有相同方法的实现的一点思考