抽象类是对某些操作下定义,如果子类不是抽象类,就会强迫子类重写所有抽象方法,以避免不必要的麻烦。
抽象方法:抽象方法没有方法体,直接public或者protected加上abstract(),返回值类型和分号结束。
public abstract int A();
抽象方法的权限修饰符:不可以用static修饰,static修饰的方法属于类,被类调用,该种方法被创建时就被实现了,而抽象方法未被实现,二者矛盾;不可以用final修饰,final修饰的抽象方法不能被重写;不可以用private修饰,private修饰的方法子类不可见,不能被重写。
抽象类的继承关系:抽象类的子类可以是抽象类也可以是普通类,但抽象类的父类一定是抽象类。抽象父类的子类如果不是抽象类就必须重写抽象父类中的所有抽象方法。
抽象类不能创建对象,但可以通过多态的形式创建对象。
关于接口:首先要知道,接口不是一个类,接口是一些抽象方法的的集合,一个类通过实现接口来实现接口里面的抽象方法。如果实现接口的不是抽象类那就需要实现接口中的所有方法。其作用是让其他类通过接口实现相同的行为。(注:接口不是类,他不继承于Object类)
接口不能实例化:可以利用接口类型来声明一个变量,它可以成为空指针,也可以绑定在以此接口实现的对象上。
public interface A{
//省略抽象方法}
public class B implements A{
//省略}
public class Test{
A example = new B();
B new = (B)example}
//example就是接口类型声明的变量,绑定在了B实现类的对象上
//example如果想要赋值给实现类类型的变量需要强制类型转换
如果有问题欢迎提出哦~