Java 面向对象类接口
第一次使用在Java中实现接口的类并定义该接口的方法之后,您是否仍然需要在实现该接口的所有其他类中定义该接口的方法,或者您是否可以实现该接口并开始使用该类中的对象的接口方法,即使该类中未明确定义该接口的方法?您需要实现该接口的方法每个类都是单独的,但假设您有一个接口“MyInterface”,其中一个类“MyFirstClass”实现了它及其方法。如果类“MySecondClass”实现了接口,那么它也需要实现这些方法。但是如果“MySecondClass”扩展了“MyFirstClass”,它就不需要实现接口方法,因为它们已经在“MyFirstClass”中实现了。您需要单独实现每个类的方法,但是例如,假设您有一个接口“MyInterface”,其中一个类“MyFirstClass”实现了它及其方法。如果类“MySecondClass”实现了接口,那么它也需要实现这些方法。但是如果“MySecondClass”扩展了“MyFirstClass”,就不需要实现接口方法,因为它们已经在“MyFirstClass”中实现了 对于非抽象类或其一个祖先类实现的每个接口,该类或其一个祖先类应定义该接口中的所有方法 考虑到默认方法 对于非抽象类或其一个祖先类实现的每个接口,该类或其一个或其一个祖先类应定义该接口中的所有方法。如果该非抽象类或其一个或其一个祖先类未定义该方法,则接口应通过默认方法功能定义该方法。不考虑 对于非抽象类或其一个祖先类实现的每个接口,该类或其一个祖先类应定义该接口中的所有方法 考虑到默认方法Java 面向对象类接口,java,oop,methods,Java,Oop,Methods,第一次使用在Java中实现接口的类并定义该接口的方法之后,您是否仍然需要在实现该接口的所有其他类中定义该接口的方法,或者您是否可以实现该接口并开始使用该类中的对象的接口方法,即使该类中未明确定义该接口的方法?您需要实现该接口的方法每个类都是单独的,但假设您有一个接口“MyInterface”,其中一个类“MyFirstClass”实现了它及其方法。如果类“MySecondClass”实现了接口,那么它也需要实现这些方法。但是如果“MySecondClass”扩展了“MyFirstClass”,它
对于非抽象类或其一个祖先类实现的每个接口,该类或其一个或其一个祖先类应定义该接口中的所有方法。如果该非抽象类或其一个或其一个祖先类未定义该方法,则接口应通过默认方法功能定义该方法。如果该类不是已实现该接口的类的子类,则必须重新定义所有方法。但是,如果类是已实现接口的类的子类,则无需再次定义方法,除非您希望重写该行为。如果该类不是已实现接口的类的子类,则必须重新定义所有方法。但是,如果一个类是已经实现了接口的类的子类,则无需再次定义这些方法,除非您希望覆盖该行为。因此您有
public class Interface {
public void someMethod();
}
和一个实现
public class InterfaceImpl implements Interface {
public void someMethod() {
System.out.println("Hello, world");
}
}
您可以子类化InterfaceImpl
,并使用子类“继承的someMethod()
”。如果InterfaceImpl
是抽象的,那么它的子类需要是具体的
如果您有另一个类与InterfaceImpl
(例如,未继承)无关,那么是的,该另一个类必须实现someMethod()
,才能满足接口的契约。
public class Interface {
public void someMethod();
}
和一个实现
public class InterfaceImpl implements Interface {
public void someMethod() {
System.out.println("Hello, world");
}
}
您可以子类化InterfaceImpl
,并使用子类“继承的someMethod()
”。如果InterfaceImpl
是抽象的,那么它的子类需要是具体的
如果您有另一个类与InterfaceImpl
无关(例如未继承),则是的,该另一个类必须实现someMethod()
,以满足接口的约定。例如,您有一个接口
public Interface A
{
int add (int a , int b);
int subtract (int a , int b)
}
public class AImpl implements A{
@override
public int add ()
{
return a+b;
}
@override
public int subtract(){
//do something
}
}
//现在您有了一个实现接口的类
public Interface A
{
int add (int a , int b);
int subtract (int a , int b)
}
public class AImpl implements A{
@override
public int add ()
{
return a+b;
}
@override
public int subtract(){
//do something
}
}
现在,您想编写一个使用类似方法作为接口的类C,您可以根据需要实现该接口并为其编写实现,也可以扩展AImpl类并使用已经实现的方法(如果它适合您的需要)。实现接口的类应该始终真正地实现该接口的所有方法 例如,您有一个接口
public Interface A
{
int add (int a , int b);
int subtract (int a , int b)
}
public class AImpl implements A{
@override
public int add ()
{
return a+b;
}
@override
public int subtract(){
//do something
}
}
//现在您有了一个实现接口的类
public Interface A
{
int add (int a , int b);
int subtract (int a , int b)
}
public class AImpl implements A{
@override
public int add ()
{
return a+b;
}
@override
public int subtract(){
//do something
}
}
现在,您想编写一个使用类似方法作为接口的类C,您可以根据需要实现该接口并为其编写实现,也可以扩展AImpl类并使用已经实现的方法(如果它适合您的需要)。实现接口的类应该始终真正地实现该接口的所有方法