Extends&Interface
Extends
java里的“类”只能有一个直接父类
所有类的祖宗都是extends object
;
interface
接口是一种特殊的抽象类,这种抽象类中只包含常量和方法的定义,而没有变量和方法的实现。
一个类可以有多个接口;
接口里声明的属性默认为public static final
的;也只能是public static final
的;所以可以省略
接口中只能定义抽象方法,而且这些方法默认为public的,也只能是public的;
接口可以继承其它的接口,并添加新的属性和抽象方法。
多个无关的类可以实现同一接口,一个类可以实现多个无关的接口。
与继承关系类似,接口和实现类之间存在多态性。
public interface Valuable{//java.lang里有好多able comparable及里面的方法compareTo
public double getMoney();//接口里的方法都是抽象的没有定义
}
interface Protectable {
public void beProtected();
}
interface A extends Protectable{//接口和接口之间可以相互继承;类和类之间可以相互继承,但是接口和类之间,只能类实现接口
void m();//在接口A里定义了两个方法,一个beProtected();一个m();
}
abstract class Animal{
private String name;
abstract void enjoy();
}
class GoldenMonkey extends Animal implements Valuable, Protectable{
public double getMoney() {
return 10000;
}
public void beProtected() {
System.out.println("live in the room");
}
public void enjoy() { }
public void test() {
Valuable v = new GoldenMonkey();
v.getMoney();
Protectable p = (Protectable) v;
p.beProtected();
}
}
class Men implements A {
public void m() {}
public void beProtected() {}
}