1、 接口(interface)是抽象方法和常量值的定义的集合;从本质上讲,接口是一种特殊的抽象类,这种抽象类中只包含常量和方法的定义,而没有变量和方法的实现
2、 接口特性:多个无关的类可以实现同一个接口、一个类可以实现多个无关的接口、与继承关系类似,接口与实现类之间存在多态性、接口中声明属性默认为public static final 的,也只能是public static final;接口中只能定义抽象方法,而且这些方法默认为public,也只能是public、接口可以继承其他的接口,并添加新的属性和抽象方法
2、 接口特性:多个无关的类可以实现同一个接口、一个类可以实现多个无关的接口、与继承关系类似,接口与实现类之间存在多态性、接口中声明属性默认为public static final 的,也只能是public static final;接口中只能定义抽象方法,而且这些方法默认为public,也只能是public、接口可以继承其他的接口,并添加新的属性和抽象方法
package TestAccess;
interface Valuable {
public double getMoney();
}
interface Protectable {
public void beProtected();
}
interface A extends Protectable {
void m();
void getMoney();
}
abstract class Animal1 {
@SuppressWarnings("unused")
private String name;
abstract void enjoy();
}
class GoldenMonkey extends Animal1 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 Hen implements A/* , Valuable */{
public void m() {
}
public void beProtected() {
}
/*
* // // public double getMoney() { return 1.0; } //
*/public void getMoney() { // 注意多个接口有相同方法名,但是参数或返回值不同
}
}
public class Aa {
public static void main(String arg[]) {
GoldenMonkey M = new GoldenMonkey();
M.beProtected();
M.test();
System.out.println(M.getMoney());
}
}