抽象类
abstract修饰的类就是抽象类,abstract修饰的方法就是抽象方法,抽象方法是没有方法体的;
抽象类中可以包含抽象方法,抽象类不能实例化,必须由子类继承,并实现抽象方法,才能使用;
抽象类与普通类的不同之处:一、抽象类有抽象方法,普通类没有;二、抽象类的构造器是供子类调用的,不能用于创建对象,普通类可以通过构造器实例化;
接口
public interface OnLoadDateListener {
int a = 7;//被隐式地指定为public static final
void changeNumber(int b);//被隐式地指定为public abstract方法
void setTextviewString(String textviewString);
void setButtonString(String buttonString);
}
接口中成员变量是可以直接 OnLoadDateListener.a来使用,且不能修改a的值,因此成员变量a是public static final;
接口中只能是抽象方法,实现接口的类必须实现该接口中所有的抽象方法,否则必须将该类声明为abstract类,不然会报错;
abstract
抽象类是一定要被继承的,抽象方法是一定要被子类实现或重写,而final修饰的类不能被继承,final修饰的方法也不能被重写,因此abstract和final不能同时使用;
抽象方法必须是子类实现,因为不能是private修饰的,因此abstract和private不同同时使用;
抽象方法没有方法体,具体实现是由子类决定,若直接由static修饰,可以直接通过父类名.方法名调用,但没有方法体,因此abstract和static不能同时使用;
abstract不能修饰构造器;