抽象类和抽象方法原则:
(1)抽象类必须使用abstract修饰符修饰,抽象方法必须使用abstract修饰符修饰,抽象方法不能有方法体。
(2)抽象类不能被实例化,即使抽象类中不包含抽象方法,同样也不能创建实例。
(3)抽象类可以包含属性,方法(普通方法和抽象方法都可以),构造器,初始化块,内部类,枚举类六种成分。抽象类的构造器不能用于创建实例,主要是用于被子类调用。
(4)含有抽象方法的类,只能被定义为抽象类。
注意:
(1)抽象方法和空方法体的方法是不同概念,例如public abstract void test();是一个抽象方法,它根本没有方法体,方法后面没有大括号,但public void test(){}方法是一个普通的方法,他已经定义了方法体,只是方法体是空,因此该方法不能用abstract修饰。
(2)abstract不能用于修饰属性,不能用于修饰局部变量,即使没有抽象变量,没有抽象属性等说法;abstract也不能修饰构造器,没有抽象构造器。抽象类中定义的构造器只能是普通的构造器。
(3)当使用static修饰一个方法时,该方法属于类,如果该方法被定义成抽象方法,则将导致通过该类来调用该方法时出现错误,因此static和abstract不能同时修饰某个方法。
(4)abstract关键字修饰的方法必须被子类重写才有意义,因此abstract方法不能定义为private访问权限。
希望对你有所帮助! |