相关疑难解决方法(0)

Java接口如何模拟多重继承?

我正在阅读"The Java Tutorial"(第二次).我刚刚完成了关于接口的部分(再次),但仍然不了解Java接口如何模拟多重继承.是否有比书中更清楚的解释?

java interface multiple-inheritance

74
推荐指数
7
解决办法
9万
查看次数

Java 8中的抽象类和接口有什么区别?

在Java中,抽象类和接口之间曾经存在微妙但重要的区别:默认实现.抽象类可以拥有它们,接口却不能.Java 8虽然引入了接口的默认实现,但这意味着这不再是接口和抽象类之间的关键区别.

那是什么?

尽我所知,唯一剩下的差异(除了可能是引擎效率之外的东西)是抽象类遵循传统的Java单继承,而接口可以有多重继承(或者如果你愿意,可以有多个实现).这引出了另一个问题 -

新的Java 8接口如何避免钻石问题

java abstract-class interface diamond-problem java-8

64
推荐指数
4
解决办法
2万
查看次数

为什么Java不允许多重继承,但允许使用默认实现符合多个接口

我不问这个 - > 为什么Java中没有多重继承,但允许实现多个接口?

在Java中,不允许多重继承,但是,在Java 8之后,Interfaces可以拥有默认方法(可以自己实现方法),就像抽象类一样.在此上下文中,还应允许多重继承.

interface TestInterface 
{ 
    // abstract method 
    public void square(int a); 

    // default method 
    default void show() 
    { 
      System.out.println("Default Method Executed"); 
    } 
} 
Run Code Online (Sandbox Code Playgroud)

java inheritance interface abstract java-8

47
推荐指数
5
解决办法
4733
查看次数

Java抽象类和接口

在采访中我被问到以下问题.我试着回答这个问题,但我想要问题的确切答案.

如果我可以将Abstract类模拟为Interface,为什么java提供了Interface?

这意味着如果在Abstract类中我可以将所有方法标记为抽象,然后抽象类将作为接口工作,那么为什么我需要接口.

任何人都可以简要解释一下.

java abstract-class interface class

12
推荐指数
1
解决办法
3727
查看次数

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

为什么java不支持多重继承

可能重复:
为什么Java中没有多重继承,但允许实现多个接口

大家好,我是java的新手,当我尝试在java中使用多继承概念时,它显示编译时错误.为什么java不支持它.我听说过关键字但是不知道为什么java直接支持它.请帮我解释一下.

java

6
推荐指数
2
解决办法
4万
查看次数

为什么Java类只能扩展一个类但实现了许多接口?

在C++中,您可以扩展许多类,那么这个Java设计的优点是什么类只能扩展一个类?由于接口是一种纯类(实际上是抽象类),为什么不像类扩展一样限制接口的实现数量呢?

java multiple-inheritance

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

是否有可能让一个班级有多个超类?

我正在使用Swing为我的高中编程类创建一个令人难以置信的原始二十一点游戏,因此,我的所有资源类都扩展了JPanel.我创建了以下资源类:

  • DealerBox
  • ClubsBox
  • SpadesBox
  • HeartsBox

我的问题是我想创建一些像我这样的公共整数

public int DealerTotal, ClubsTotal, SpadesTotal, HeartsTotal;
Run Code Online (Sandbox Code Playgroud)

我想这样做,所以我可以追踪每个人的价值观,并确定赢家和输家.我有一个灯泡响了,并认为让Dealerbox成为Clubs,Spades和Hearts的超级类是我所有麻烦的解决方案,因为我可以让超类中的简单代码获取上述整数的值并执行我需要的所有检查.

所以我为我的一个子类写了这个:

public class ClubsBox extends JPanel, DealerBox implements Runnable
{
//fun code 
}
Run Code Online (Sandbox Code Playgroud)

现在的问题是我不断收到错误.我认为它与将ClubsBox列为JPanel和DealerBox的子类有关.所以我stackoverflowed我的问题,并找到一个答案,声明一个人不能有一个有2个超类的类.对类似问题的另一个答案是,一个COULD有一个有两个超类的类.

现在我们来看一个主要问题:是否有可能拥有一个有两个超类的类?如果是这样,我该如何编码呢?如果没有,是否有办法绕过限制?

编辑:2014年4月21日,原始邮寄后44分钟

我有一个新问题.我使用了每个人都建议的方法,即让DealerBox扩展JPanel然后让其他所有东西扩展DealerBox.我的GUI来自于: 链接之前的GUI

对此:

链接后的GUI 底部显然非常难以搞砸.不知何故,来自其他地区的标签最终被复制,并且东西混杂在一起.如果您需要代码让我知道,但我需要认真帮助解决这个问题.

请记住,继承树看起来像这样:

InhertianceTree

java inheritance swing subclass superclass

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

如何创建一个"扩展"两个现有具体类的类

我非常清楚它可以在界面的帮助下完成,而且我已经多次完成了.但这次我的情况有很大不同.我有class A,class B我需要创建另一个class C扩展A和B,因为C应该具有两个功能,并且还注意A和B不是相互关联的,所以即使我不能说A可以扩展class B.

我现在应该怎么做才很困惑.我知道我们不能改变java ...但至少会有一些方法可能.即使是最近的也可以......请帮帮我.

添加更多细节: - Class B是标准API,class A而是需要由所有异常类继承的常见异常类.

相关问题:

java oop multiple-inheritance

3
推荐指数
2
解决办法
1813
查看次数

需要更合理的答案"为什么Java没有多重继承"

可能重复:
为什么Java中没有多重继承,但允许实现多个接口

到目前为止,我所看到的关于"为什么Java没有多重继承"的每个答案只有一个答案,更具体或更详细的方式是"降低复杂性",但没有人定义它如何降低复杂性,如果我们使用接口而不是类什么它有所不同.这不是一回事吗?如果我们实现一个接口而不扩展我们的类有什么区别?有人回答了Diamond问题,但接口也会产生钻石问题.

java

3
推荐指数
1
解决办法
283
查看次数

它是多重继承吗?如果不是为什么?

public interface A {
    class Aclass {
        int constants = 100;
        public void display()
        {
            System.out.println("Inside A");
        }
    }
    public void display();

}
public interface B {
    class Bclass {
        int constants = 130;

        public void display() {
            System.out.println("Inside B");
        }
    }
    public void display();
}

public class MultipleInheritance implements A, B {

    @Override
    public void display() {
        A.Aclass a = new A.Aclass();
        System.out.println(a.constants);
        B.Bclass b = new B.Bclass();
        System.out.println(b.constants);
    }

    public static void main(String args[]) {

        new MultipleInheritance().display();
    } …
Run Code Online (Sandbox Code Playgroud)

java multiple-inheritance

3
推荐指数
1
解决办法
118
查看次数