Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法在java中扩展抽象类时的部分接口实现_Java_Interface_Abstract Class_Partial - Fatal编程技术网

无法在java中扩展抽象类时的部分接口实现

无法在java中扩展抽象类时的部分接口实现,java,interface,abstract-class,partial,Java,Interface,Abstract Class,Partial,假设我有一个接口,它有3个方法。该接口将由许多类实现,但say method1的实现在所有类中都是相同的 我可以创建一个抽象类,为method1提供一个具体的实现,并让我的类扩展这个类 我的问题是,当我已经在扩展一个类时,如何扩展这个抽象类。Java不支持它。在这种情况下,我应该如何设计 interface Inf{ void method1(); void method2(); void method3(); } public abstract class Abs implements

假设我有一个接口,它有3个方法。该接口将由许多类实现,但say method1的实现在所有类中都是相同的

我可以创建一个抽象类,为method1提供一个具体的实现,并让我的类扩展这个类

我的问题是,当我已经在扩展一个类时,如何扩展这个抽象类。Java不支持它。在这种情况下,我应该如何设计

interface Inf{
 void method1();
 void method2();
 void method3();
}

public abstract class Abs implements Inf{
 void method1(){
  //concrete implementation
 }
}

class Test extends SomeClass implements Inf{
   //here I need method1 implementation and other methods Ill implement
}

class SomeClass{
}

Java不支持
多重继承
。i、 e一个类不能有多个基类。您可以做的是使
SomeClass
扩展
Abs

class SomeClass extends Abs{

}

class Test extends SomeClass implements Inf{
   //here you can get method1 implementation since Someclass extends Abs
}

注意:正如@anonymous所说,如果您使用Java 8,您可以使用
接口的
默认方法
,Java不支持
多重继承。i、 e一个类不能有多个基类。您可以做的是使
SomeClass
扩展
Abs

class SomeClass extends Abs{

}

class Test extends SomeClass implements Inf{
   //here you can get method1 implementation since Someclass extends Abs
}

注意:正如@anonymous所说,如果您使用Java 8,您可以使用
接口的
默认方法
,Java不支持
多重继承。i、 e一个类不能有多个基类。您可以做的是使
SomeClass
扩展
Abs

class SomeClass extends Abs{

}

class Test extends SomeClass implements Inf{
   //here you can get method1 implementation since Someclass extends Abs
}

注意:正如@anonymous所说,如果您使用Java 8,您可以使用
接口的
默认方法
,Java不支持
多重继承。i、 e一个类不能有多个基类。您可以做的是使
SomeClass
扩展
Abs

class SomeClass extends Abs{

}

class Test extends SomeClass implements Inf{
   //here you can get method1 implementation since Someclass extends Abs
}

注意:正如@anonymous所说,您可以使用
接口的
默认方法
,如果您使用Java 8

使用Java 8,您可以在接口内定义方法的默认实现

public interface A {
    default void method1() { System.out.println("Default method1 implementation"); }
    void method2();
    void method3();
}

使用Java8,您可以在接口内定义方法的默认实现

public interface A {
    default void method1() { System.out.println("Default method1 implementation"); }
    void method2();
    void method3();
}

使用Java8,您可以在接口内定义方法的默认实现

public interface A {
    default void method1() { System.out.println("Default method1 implementation"); }
    void method2();
    void method3();
}

使用Java8,您可以在接口内定义方法的默认实现

public interface A {
    default void method1() { System.out.println("Default method1 implementation"); }
    void method2();
    void method3();
}

Java不支持多重继承。 您可以使您的Abs类扩展到某个类

class Abs extends SomeClass {

}

class Test extends Abs implements Inf {
}

Java不支持多重继承。 您可以使您的Abs类扩展到某个类

class Abs extends SomeClass {

}

class Test extends Abs implements Inf {
}

Java不支持多重继承。 您可以使您的Abs类扩展到某个类

class Abs extends SomeClass {

}

class Test extends Abs implements Inf {
}

Java不支持多重继承。 您可以使您的Abs类扩展到某个类

class Abs extends SomeClass {

}

class Test extends Abs implements Inf {
}

这里的问题是某个类现在必须实现接口的所有方法。另一个解决方案是Abs,它没有实现接口,只是给出了method1()的具体实现。但我认为这不是一个恰当的实现。也许在设计上有一些改变?这里的问题是一些类现在必须实现接口的所有方法。另一个解决方案是Abs,它没有实现接口,只是给出了method1()的具体实现。但我认为这不是一个恰当的实现。也许在设计上有一些改变?这里的问题是一些类现在必须实现接口的所有方法。另一个解决方案是Abs,它没有实现接口,只是给出了method1()的具体实现。但我认为这不是一个恰当的实现。也许在设计上有一些改变?这里的问题是一些类现在必须实现接口的所有方法。另一个解决方案是Abs,它没有实现接口,只是给出了method1()的具体实现。但我认为这不是一个恰当的实现。也许在设计上有一些改变?这肯定是一个解决方案,但是在旧版本的java上会发生什么呢?如何处理,我从设计的角度考虑的更多。在这种情况下,您将拥有一个实现默认方法的抽象类,并且在您的API设计中,您需要这个抽象类的子类,而不是接口。这返回到我的第一个问题,假设我的类已经在扩展一个类,我不能编辑这个超类来扩展我的抽象类。在这种情况下,我该如何处理呢?这肯定是一个解决方案,但在旧版本的java上又该怎么办呢?如何处理,我从设计的角度考虑的更多。在这种情况下,您将拥有一个实现默认方法的抽象类,并且在您的API设计中,您需要这个抽象类的子类,而不是接口。这返回到我的第一个问题,假设我的类已经在扩展一个类,我不能编辑这个超类来扩展我的抽象类。在这种情况下,我该如何处理呢?这肯定是一个解决方案,但在旧版本的java上又该怎么办呢?如何处理,我从设计的角度考虑的更多。在这种情况下,您将拥有一个实现默认方法的抽象类,并且在您的API设计中,您需要这个抽象类的子类,而不是接口。这返回到我的第一个问题,假设我的类已经在扩展一个类,我不能编辑这个超类来扩展我的抽象类。在这种情况下,我该如何处理呢?这肯定是一个解决方案,但在旧版本的java上又该怎么办呢?如何处理,我从设计的角度考虑的更多。在这种情况下,您将拥有一个实现默认方法的抽象类,并且在您的API设计中,您需要这个抽象类的子类,而不是接口。这返回到我的第一个问题,假设我的类已经在扩展一个类,我不能编辑这个超类来扩展我的抽象类。在这种情况下,我该如何处理?