一 抽象类
1:抽象方法只能定义在抽象类中,抽象类和抽象方法必须由abstract关键字修饰(可以描述类和方法,不可以描述变量)。
2:抽象方法只定义方法声明,并不定义方法实现。
3:抽象类不可以被创建对象(实例化)。
4:只有通过子类继承抽象类并覆盖了抽象类中的所有抽象方法后,该子类才可以实例化。否则,该子类还是一个抽象类。
抽象类中可以定义非抽象方法,抽象类中有构造函数,用于子类对象初始化。
abstract不可以与final,private,static共存。
抽象类中可以不定义抽象方法。
模板方法设计模式:
解决的问题是:当功能内部一部分实现时确定,一部分实现时不确定,这些需要把不确定的部分让子类去实现。
abstract class GetTime{
public final void getTime(){ //此功能如果不需要复写,可加final限定,功能确定的部分。
..............................}
public abstract void code(); //抽象不确定的功能,让子类复写实现
}
class SubDemo extends GetTime{
public void code(){ //子类复写功能方法
.........................................
}
}
二,interface不可以实例化,接口中子类实现接口中所有抽象方法后,才可以实例化。
成员变量:public static final
成员方法:public abstract
interface Inter{
public static final int x=3;
public abstract void show();
}
实现用implements ;