Java中的多重继承

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java中的多重继承相关的知识,希望对你有一定的参考价值。

1. Java子类只能继承一个基类,但可以实现多个接口。

技术分享
package com.test.wx;

public class Test {
    interface CanFight{
        void fight();
    }
    interface CanSwim{
        void swim();
    }
    interface CanFly{
        void fly();
    }
    class Action{
        public void fight(){ System.out.println("Action");}
    }

    class Hero extends Action implements CanFight,CanSwim,CanFly
    {

        @Override
        public void fly() {
            // TODO Auto-generated method stub
            System.out.println("fly");
        }

        @Override
        public void swim() {
            // TODO Auto-generated method stub
            System.out.println("swim");
        }
        
    }
    
    public static void t(CanFight x){x.fight();}
    public static void u(CanSwim x){x.swim();}
    public static void v(CanFly x){x.fly();}
    public static void w(Action x){x.fight();}
    public static void main(String[] args) {
        Hero h= new Test().new Hero(); //内部类对象的创建需要使用.new
        t(h);
        u(h);
        v(h);
        w(h);
        
    }
}
View Code

执行结果:

技术分享
Action
swim
fly
Action
View Code

2. 接口的多继承。

技术分享
package com.test.wx;

public class Test {
    interface A{
        void fa();        
    }
    interface B{
        void fb();
    }
    interface C extends A,B{
        void fc();
    }
    
    class DDD implements C{

        @Override
        public void fa() {
            // TODO Auto-generated method stub
        }

        @Override
        public void fb() {
            // TODO Auto-generated method stub
            
        }

        @Override
        public void fc() {
            // TODO Auto-generated method stub
            
        }
        
    }

}
View Code

 

以上是关于Java中的多重继承的主要内容,如果未能解决你的问题,请参考以下文章

Java中的多重继承

java中的多重继承

如何将此多重继承转换为Java中的接口?

如何在没有多重继承的情况下避免代码重复(即在 java 中)?

JDK 8 中的默认值是 Java 中多重继承的一种形式吗?

什么是多重继承,单重继承?