
Java入门教程-抽象类
1、抽象类的概念
在面向对象的概念中,所有的对象都是通过类来描绘的,但是放过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。
2、抽象类的语法
在Java 中,一个类如果被abstract 修饰的类成为抽象类,抽象类中被abstract 修饰的方法称为抽象方法,抽象方法不用给出具体的实现体。
抽象类的定义格式如下:
abstract class 抽象类名{
属性;
// 普通方法
访问权限 返回值类型 方法名称(参数){
return [返回值];
}
// 抽象方法,无方法体
访问权限 abstract 返回值类型 抽象方法名称(参数);
}
从以上格式可以看出,抽象类的定义比普通类多了抽象方法,类的其他功能依然存在,成员变量、成员方法和构造方法的访问方式和普通类一样。
3、抽象类的特性
1)抽象类不能直接实例化对象
2)抽象方法不能是被 private 修饰的
3)抽象方法不能被final 和 static修饰,因为抽象方法要被子类重写。
4)抽象类必须被继承,并且继承后子类要重写父类中的抽象方法,否则子类也是抽象类,必须要使用 abstract 修饰,如果一个非抽象类继承了抽象类,那么这个子类必须实现抽象类中的全部抽象方法。
abstract class Shape {
// 抽象方法
public abstract void draw();
}
abstract class A extends Shape {
public abstract void testA();
}
class B extends A {
@Override
public void testA() {}
@Override
public void draw() {}
}
5)抽象类中不一定包含抽象方法,但是有抽象方法的类一定是抽象类
6)抽象类中可以有构造方法,供子类创建对象时,初始化父类的成员变量