相关疑难解决方法(0)

Java 8是否支持多重继承?

我在Java 8中读取接口时遇到过这个主题,有些情况下我们使用default或static关键字在接口中定义方法,允许下一个子节点重新定义相同的方法或实现它.这意味着多重继承吗?还有一个问题我发现,返回类型必须是co-variant类型,否则编译问题,这意味着它仍然不支持多重继承?我们可以说java支持多重继承吗?让我了解有关此主题的更多详细信息.

java

10
推荐指数
1
解决办法
9375
查看次数

接口Java1.8中的具体方法

在讨论过程中,我的一位朋友告诉我,concrete methods would be allowed in java 1.8 in interfaces当时我的脑海里浮现出一个问题,即如果他们被允许那么我们将如何区分这些方法.例如
我有两个接口Animal.java,Pet.java并且两者都有相同的具体方法,即eat()

   public interfaces Animal{

        void eat(){
                System.out.println("Animal Start eating ....");
        }
   }

   public interfaces Pet{

        void eat(){
                System.out.println("Pet Start eating ....");
        }
   }
Run Code Online (Sandbox Code Playgroud)

现在我Zoo.java实现这两个并没有覆盖

    public class Zoo() implements Pet , Animal{ 
             //Now name method is a part of this class
   }
Run Code Online (Sandbox Code Playgroud)

现在这是我的困惑.如何animal使用Testobject 调用inteface上的特定方法

public class Demo{
        public static void main(String[] args){

                 Zoo zoo = new Zoo();
                 zoo.eat(); …
Run Code Online (Sandbox Code Playgroud)

java interface

8
推荐指数
1
解决办法
1万
查看次数

从两个不同的接口调用相同的方法名称 - Java

Java不允许多重继承来保护钻石问题.它使用接口来处理这个问题.

然后就是使用界面的情况吧

interface A{
run();
}

interface B{
run();
}

class C implements A, B{
run() {}   //Which interface we are using?
}
Run Code Online (Sandbox Code Playgroud)

当我们run()在类中调用该方法时,我们C如何确定我们使用的是哪个接口?

java interface class abstract diamond-problem

8
推荐指数
2
解决办法
6617
查看次数

Java中的多重继承与否?

据说,Java语言只支持单继承.但是如何同时从Object和任何其他类继承?这不是一个多重继承.

其次,我们需要继承所有11个Object方法?我很难想象为什么我在I/O中需要它们,例如

最后,JDK 8将为我们提供接口中的默认方法实现,以及是否可能导致Java中的多重继承.

如果接口A提供方法a()具有默认实现并且接口B也提供带有另一个默认实现的a()方法并且我们的自定义类C实现两个接口并依赖于默认实现 - 那不是Diamond of Death吗?

java inheritance class multiple-inheritance

0
推荐指数
1
解决办法
1008
查看次数