Nee*_*eel 2 java interface class abstract
public class C {
public abstract Boolean methodC();
}
Class A implements C {
// all non-abstract methods
}
Class B extends A {
// all non-abstract methods
}
Run Code Online (Sandbox Code Playgroud)
在Java中,可以
C是抽象类还是必须是接口?[注:它说 - '一个实施C'.你能用Java实现一个抽象类吗?]
以下是一些非常有用的术语说明:
一个接口:这是方法的集合.他们没有任何的定义和他们的功能是由确定类是实现它们.接口的示例是List.所有列表(ArrayList,LinkedList)都有add()和remove()方法,因为它们实现了需要它们的List接口.
public interface List {
public void add (Object o);
public void remove (Object o);
}
public class MyList implements List {
public void add (Object o) {
// I must implement this method because of the interface List
}
public void remove (Object o) {
// I must implement this method because of the interface List
}
}
Run Code Online (Sandbox Code Playgroud)
一个抽象类:这是一个部分完成的类.它与接口的不同之处在于它通常包含一些功能.但是,它(通常)缺少一些需要由*extend*ing子类定义的方法.这些方法在抽象超类中定义为抽象方法.
public abstract class AbstractThing {
public void method1 (Object o) {
// This is a real method that does things
}
// Anyone who extends me must implement this
public abstract void method2 (Object o1, Object o2);
}
public class ActualThing extends AbstractThing implements List {
public void add (Object o) {
// I must implement this method because of the interface List
}
public void remove (Object o) {
// I must implement this method because of the interface List
}
public void method2 (Object o1, Object o2) {
// I must implement this method because of abstract method in
// the super class
}
Run Code Online (Sandbox Code Playgroud)
该工具使用关键字的一类,表明它是要实现由要求的方法接口.一个类可以实现任意数量的接口; 唯一的要求是它为每个方法提供了一个定义.它也可以定义为抽象,并依赖其子类来定义一些.然后,这些方法就像任何其他抽象类的抽象方法一样.
该扩展关键字用于一类,表明它打算将功能添加到现有的一些类.如果父类是抽象的,则扩展类必须在父类中实现任何这些抽象方法.一个类只能扩展一个父类.
为什么这么复杂?接口很好,因为您可以假设实现类的某些功能.具体情况是List接口.大多数方法都不关心他们得到什么样的列表; 他们只是想知道该对象支持公共列表方法.在声明中:
List<String> myList = new ArrayList();
Run Code Online (Sandbox Code Playgroud)
您正在创建一个实际的ArrayList对象,但在List接口下隐藏它的实现.然后,如果您决定使用LinkedList,则不必更改所有代码,因为它还实现了List接口.
Java还定义了几个"接口集"(例如持久性),但没有实现.这允许第三方开发自己的实现(实际类),但由于它们都实现了相同的公共接口,因此开发人员可以在不更改代码的情况下交换实现.
| 归档时间: |
|
| 查看次数: |
4562 次 |
| 最近记录: |