抽象类
- 1、使用关键字
abstract
来声明一个抽象类,它出现在关键字class
的前面。
public abstract class Employee{
}
- 2、抽象类无法实例化,类的功能仍然存在。
- 3、如果一个类中含有一个抽象类方法,那这个类也必须是抽象类。
- 4、抽象方法没有方法体。(小括号后面直接+“;”)
public abstract void age();
- 5、任何一个子类都是可以实现父类的抽象方法或继续将它声明为抽象方法。
- 6、任何子类都可以用
super
来调用父类的构造方法。
接口
- 1、接口默认就是抽象的,声明是不需要
abstract
- 2、
extends
关键字用来继承一个接口,一个接口可以继承多个接口,用逗号隔开。
- 3、接口不能包含实例变量,接口中出现的量一定是用
static
和final
所修饰的常量,常量必须赋值,没有默认值。
public static final int age = 23;
- 4、接口中的每个方法默认为抽象,所以不需要
abstract
关键字,接口中的方法默认是public
,并且接口不能包含构造方法。
interface LivingThing {
void live();
}
- 5、接口不能被类继承,它应该被类实现,用
implements
关键字。
public class MammalInt implements Animal,Bird{
}
- 6、不能直接实例化一个接口,须实例化实现接口的类,接口的方法必须实例化,但不是必须调用。
- 7
- 7.1当一个类实现一个接口的时候,你可以认为类就是签订一个条约,
同意去执行接口中的各种行为。
- 7.2如果一个类没有实现接口中的所有行为,
这个类就必须声明为 abstract
abstract class dog implements Animal{
}