在Java中,接口的任何使用都可以由抽象类来实现。我知道接口的一个优点是,如果我们实现了一个接口,那么我们也可以扩展另一个类。在Java中,接口还有其他用途或优势吗?Java:接口/抽象类/抽象方法抽象类和接口类的区别?
接口允许你在不同的继承层次结构中使用类,实现多态。
举个例子,假如你有以下接口:
public interface Movable {
void move();
}
无论多少个类,在类层次结构中,都可以以自己特定的方式实现 Movable
,但仍然可以以统一的方式被某些调用方使用。
因此,如果您有以下两个类:
public class Car extends Vehicle implements Movable {
public void move() {
//implement move, vroom, vroom!
}
}
public class Horse extends Animal implements Movable {
public void move() {
//implement move, neigh!
}
}
从调用方的角度来看,它只是一个可移动的Movable
Movable movable = ...;
movable.move(); //who am I?
我希望这可以帮到你。你喜欢的是:在一个抽象类中有成千上万个抽象方法,然后继承这个类;或者为特定的抽象方法制作尽可能多的接口,并通过继承尽可能多的接口来仅使用所需的接口...
abstract class A
{
//thousands of abstract method();
abstract methodA();
abstract methodB();
abstract methodC();
}
//OR
interface ForOnlymethodA
{
void methodA();
}
interface FormethodBandmethodC
{
void methodB();
void methodC();
}
所以,只需通过继承特定接口来使用该方法,如果您继承的是Abstract
类,则会在一个类中不必要地继承所有不需要的方法,并且可能需要在其他一些类中使用。