抽象类
abstract关键字
abstract关键字修饰的类称为抽象类,修饰的方法称为抽象方法。
在使用抽象类时要注意:
- 抽象类不能被实例化,实例化的工作应该交由它的子类来完成,它只需要有一个引用即可。
- 在抽象类中抽象方法没有方法体且必须由子类来进行重写。
不能有方法体
子类必须重写抽象方法
- 只要包含一个抽象方法的抽象类,该方法必须要定义成抽象类,不管是否还包含有其他方法。
4. 抽象类中可以包含具体的方法,当然也可以不包含抽象方法。
包含具体的方法和抽象方法:
不包含抽象方法:
5. abstract 不能与private、static、final并列修饰同一个方法
接口
接口通常以interface来声明,一个类通过继承接口的方式,从而来继承接口的抽象方法。
接口是抽象类的更进一步.
抽象类中还可以包含非抽象方法, 和字段. 而接口中包含的方法都是抽象方法, 字段只能包含静态常量
声明一个接口
public interface myInterface {
void init();
void login();
void service();
int result();
}
实现一个接口,需要重写接口定义的所有抽象方法:
public class example implements myInterface {
@Override
public void init() {
}
@Override
public void login() {
}
@Override
public void service() {
}
@Override
public int result() {
return 0;
}
}
接口中只能包含抽象方法,也只能包含静态常量(static,final)
接口和抽象类的区别