1 一个抽象类里可以没有抽象方法,但含有抽象方法的类必定为抽象类; 2 抽象类不能被实例化为对象,而只能作为其它类的超类,并且必须被继承; 3 若某子类继承自一个抽象类,而该子类不是抽象类,则子类需用覆盖的方式来实例化超类中的所有抽象类方法。
抽象方法可再与public、protect复合使用,但不能与final、private和static复合使用; 4 抽象方法只有方法声明,不能有方法体。
1.抽象方法:
使用abstract修饰,的方法,没有方法体,只有声明。定义的是一种“规范”,就是告诉子类必须要给抽象方法提供具体的实现
2.抽象类:
包含抽象方法的类就是抽象类。通过abstract定义规范,然后要求子类必须定义具体实现,通过抽象类,我们就可以,严格限制子类的设计,使的子类之间更加通用
3.基本用法:
public abstract class _01_Abstract{ //1.没有实现 //2.子类必须实现 abstract public void shout(); public void run(){ System.out.println("4565482 454"); } } class Dog extends _01_Abstract{ @Override //父类中有shout方法,所以限制子类必须有,至于方法体中有什么与父类无关 public void shout() { // TODO Auto-generated method stub System.out.println("___++++++___"); } }
4.使用要点:
1 在抽象方法的类只能定义成抽象类; 2 抽象类不能实例化,即不能用new来实例化对象; 3 抽象类可以以包含属性、方法、构造方法。但是构造方法不能用来new实例,只能被子类调用; 4 抽象类只能用来被继承; 5 抽象方法必须被子类实现。