抽象类和接口
2017-12-07 本文已影响0人
瑶瑶_2930
使用规则
- abstract定义抽象类
- abstract 定义抽象方法,只有声明不需要实现
- 包含抽象方法的类是抽象类
- 抽象类中可以包含普通的方法,也可以没有抽象方法
- 抽象类不能直接创建,可以定义引用变量
(抽象类可以约束子类,因为抽象方法必须实现,抽象方法没有方法体,以分号结束)
例:
public abstract void call();
具体使用
Telphone tel1=new Cellphone();
tel1.call();
创建抽象类的引用变量,指向子类的对象,然后用这个变量调用方法
接口
实现
和抽象类一样,接口的引用指向实现了接口的对象。例:
IPlayGame ip1=new SmartPhone();
ip1.playGames();
和匿名内部类配合使用
采用接口引用变量
没有名字的内部类,多关注实现而不关注名称
语法格式
Interface i=new Interface(){
public void method(){
System.out.println("...");//举例而已
}
};
个人理解,第一种实现是new实现了接口的类的对象,类里重写了接口的抽象方法,而匿名内部类则new接口的对象,在接口里重写方法(有@override),要注意,分号。最后用接口的引用调用抽象方法。例:
IPlayGame ip3=new IPlayGame(){
public void playGames(){
System.out.println("dddd");
}
};
ip3.playGames();
}
####直接new接口的引用 然后调用
例:
new IPlayGame(){
public void playGame(){
System.out.println("fff");
}
}.playGame();
p.s安卓常用这种方式