Java中,有一些特殊的方法和类。
抽象类
在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。
类和类之间有共同的特征,将这些特征进一步提取出来,就形成了抽象类。
在Java语言中使用abstract class来定义抽象类。其语法结构为:
修饰符 abstract class 类名{
…………
}
抽象类不能实例化对象,所以抽象类必须被继承,才能被使用。
抽象类虽然不能实例化对象,但是抽象类里面有属性,方法和构造方法,这些方法是供继承抽象类的子类使用的。
如:
public abstract class Test {
int c;
public Test() {
c = 0;
}
public Test(int a){
c = a;
}
public int method(int a){
return a;
}
}
定义了一个类名为Test的抽象类,里面有属性c,有有参数的和无参数的构造方法,有返回值为int的方法。这些属性和方法不是Test类自己用的,Test类无法创建对象,这些属性和方法是给继承抽象类的子类使用的。
抽象类不能被实例化(初学者很容易犯的错),如果被实例化,就会报错,编译无法通过。只有抽象类的非抽象子类可以创建对象。