抽象类
1:abstract Class +类名
没有方法体的方法是抽象的方法。
在一个类中如果有抽象方法,该类必须定义为抽象类。
2特点
1):抽象类和抽象方法必须用关键字abstract修饰
2):抽象方法的类一定是抽象类
3):抽象类不能实例化,可以通过子类来实现–多态
4):抽象类的子类
抽象类:有抽象方法的类
具体类:全部重写父类的所有抽象方法
3抽象类的成员特点:
1):成员变量
有变量,有常量
2):构造方法
有构造方法
3):成员方法
有抽象,有非抽象
public abstract class User {
//构造方法
public User() {
super();
}
private int id;
private String name;
private final Integer num=1;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
//抽象方法
public abstract void login(String name);
}
接口:
理解:可以看做没有实现方法的特殊抽象类,当然修饰符也不同
特点:
1)接口不能实例化
2)接口的实现类
是一个抽象类。
是一个具体类,这个类必须重写接口中的所有抽象方法。
3)成员变量 只能是常量
默认修饰符:public static final
4): 没有构造方法
5):成员方法 只能是抽象的
默认修饰符:public abstract
类与类,类与接口,接口与接口
1):类与类
继承关系,只能单继承,可以多层继承
2):类与接口
实现关系,可以单实现,也可以多实现。
还可以在继承一个类的同时,实现多个接口
3):接口与接口
继承关系,可以单继承,也可以多继承