/**
*
- @author Monk
*/
public class TestInterface {
public static void main(String[] args){
/*注意!!!这里很重要!!!c引用前面我们写C1那么我们就只能调用接口C1重写的方法fly();而不能调用run();
*因为c引用前面的类型是一个范围!!!
*如果我们写成这样
*Object c=new Monk(); 那么所有子类的方法你都不能调用了
* 因为前面这个object的已经确定了它所能使用的方法,
* Object的大概有八九个方法的话,也就是说你后面那个子类不管再厉害,
* 它也只能调用到八九个方法。只不过它调的是有多态的特性的
* 也就是说如果子类重写了父类方法的话,
* 不管什么方法还是怎么的都调用不了。因为范围还是外边的范围。
*
*
*/
C1 c=new Monk();
c.fly();
}
}
//定义一个接口
interface C1{
int FLYA1=100;
void fly();
}
interface A1{
void run();
}
//定义实现类,一个子类实现类可以实现多个父接口,
class Monk implements C1,A1{
public void fly(){
System.out.println(“重写A1抽象方法”);
}
public void run(){
System.out.println(“重写C1抽象方法”);
}
}
class GoodMan implements A1{
@Override
public void run() {
System.out.println("这个子类只实现了父接口A1");
}
}
class Bird implements C1{
@Override
public void fly() {
System.out.println("");
}
}