抽象类:是抽象方法与非抽象方法的集合
语法:
<修饰符> abstract class 抽象类名
{
抽象方法;
非抽象方法;
}
两种特殊情况:
1.类中全部是抽象方法
2.类中全部是非抽象方法(意义不大)
注意:
1.抽象类不能实例化
2.父类的所有抽象方法必须在子类中提供具体的实现,否则子类只能被声明为抽象类
3.抽象方法不能为static
注意以下两种情况,一个类必须声明为抽象类:
1.当类中存在一个或多个抽象方法时
2.当子类没有实现父类的所有抽象方法时
3.当一个类实现一个接口,并且不能为全部抽象方法都提供实现时
抽象方法:
语法:
<修饰符> abstract 返回值类型 抽象方法名([参数类型]);
例子:
package com.lqh.chapter03; public abstract class AbstractClass { //父类的抽象方法 public abstract void getInfo(); //非抽象方法 public void getInfo2() { System.out.println("父类信息"); } } class Son1 extends AbstractClass{ //子类必须实现父类所有的抽象方法 public void getInfo() { System.out.println("子类信息1"); } } class Son2 extends AbstractClass{ public void getInfo() { System.out.println("子类信息2"); } //子类可以选择重写父类的非抽象方法 public void getInfo2() { } }