实例
/**
*Person.java 接口
*/
public interface Person {
void introduce();
}
/**
* Programmer.java 实现类1
*/
public class Programmer implements Person{
@Override
public void introduce() {
System.out.println("我是一名Java程序员");
}
public void play() {
System.out.println("我还是一个吉他手");
}
}
/**
* Student.java 实现类2
*/
public class Student implements Person {
@Override
public void introduce() {
System.out.println("我是一名学生");
}
}
/**
* Main.java
*/
public class Main {
public static void main(String[] args){
Person person; //声明接口变量
person = new Programmer();
person.introduce();
/*因为person是接口变量,如果写成person.play()会爆红;*/
((Programmer) person).play();
Programmer person2 = new Programmer();
/*因为person2是实现类变量,所以写成person.play()不会爆红*/
person2.play();
System.out.println("----------------");
person = new Student();
person.introduce();
}
}
使用 接口 对象名 = new 类名 的方式实例化的对象只能调用接口中有的方法,而不能调用类中特有的方法。
而使用 类名对象名 = new 类名 的方式创建出来的对象可以调用所有的方法。
手机扫一扫
移动阅读更方便
你可能感兴趣的文章