抽象类的定义与使用
抽象类:
抽象类是在普通类中扩充了一些抽象方法
抽象类需要注意的地方:
- 抽象类必须有子类,抽象类的子类必须覆写所有的抽象方法
- 抽象类不一定含有抽象方法,含有抽象方法的类一定是抽象类
- private和abstract不能同时使用,final和abstract不能同时使用
- 抽象类的实例化要依赖其子类
简单的写一个抽象类:
public class Main {
public static void main(String args[]){
Person person=new Student();
person.print();
}
}
abstract class Person{
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
abstract void print();//抽象方法
}
class Student extends Person{
public void print(){
System.out.println("student");
}
}
接口的定义与使用
接口:
全局常量与抽象方法的集合
使用接口时需要注意的地方
- 一个类可以实现多个接口,一个接口可以继承多个接口
- 接口的子类必须覆写接口的所有抽象方法
- 接口中的常量都是被public static final修饰,方法都是被public abstract修饰
- 抽象类可以实现多个接口,接口不能继承抽象类
简单的写一个接口:
public class Main {
public static void main(String args[]){
ipeople ipeople=new People();
ipeople.print();
}
}
interface ipeople{
String string="hello";
void print();
}
class People implements ipeople{
@Override
public void print() {
System.out.println(ipeople.string);
}
}
当一个类既要继承类又要实现接口时:
class Student extends Person implements iTeather{ }
抽象类与接口的区别
- 一个子类只能继承一个抽象类,可以实现多个接口
- 一个抽象类可以实现多个接口,一个接口不能继承抽象类
- 抽象类的继承使用extends关键字,接口的实现使用implements关键字
- 抽象类中没有权限的限定,接口只能使用public权限
- 抽象类是由普通类和抽象方法组成的,接口是由全局常量和抽象方法组成