Java抽象类
一,如何定义抽象类?
class关键字前加abstract
二,抽象类无法被实例化(无法通过new来创建对象),它的实现只能依靠继承关系,通过子类的实例化来实现自身的实例化。
三,抽象类虽然没有办法实例化,但是抽象类也有构造方法,该构造方法是给子类创建对象用的。
-
abstract class Person { //定义一个抽象类,必须被继承 -
-
public Person(){ -
System.out.println("调用的是父类的无参构造函数"); -
} -
public Person(int i) { -
System.out.println("调用的是父类的有参构造函数"); -
} -
} -
-
class Student extends Person { -
// 想调用父类抽象类的有参构造函数必须先显式声明,然后通过super函数调用 -
Student(int i) { -
super(i); -
//必须显示的调用父类构造方法,super代表父类对象 -
System.out.println("子类的有参构造函数\n"); -
} -
-
//默认调用父类的无参构造函数,同样必须显式声明 -
Student(){ -
System.out.println("子类的无参构造函数"); -
} -
} -
public class Test { -
public static void main(String[] args) { -
int i=0; -
Student 有参 = new Student(i); -
Student 无参 = new Student(); -
-
-
} -
}
四,抽象类中可以定义抽象方法。
*抽象方法的语法:在方法的修饰符列表添加abstract关键字。并且该抽象方法应该以“ ;”结束,不能带有“ { } ”。(注:抽象类不能被final修饰)
例如:public abstract void m1( ) ;
五,一个非抽象的类继承抽象类,必须将抽象类中的抽象方法覆盖,实现,重写

浙公网安备 33010602011771号