1、抽象類特點
(1)方法只有聲明沒有實現時,該方法就是抽象方法,需要被關鍵字abstract所修飾,抽象方法必須定義在抽象類中,該類也必須用abstract關鍵字進行修飾。
(2)抽象類不可以實例化,因爲調用抽象方法沒有意義。
(3)抽象類必須要有其子類覆蓋了所有的抽象方法後,該子類纔可以被實例化,否則該子類還是一個抽象類。
2、抽象類中的構造函數一般用於子類的初始化
3、抽象類中可以不定義抽象方法,但很少見,目的就是不讓該類創建對象。AWT的適配器對象就是這種類。通常該類中有方法體,沒有內容。
4、抽象關鍵字不可以和那些關鍵字共存? private ,static,final
5、抽象類一定是個父類嗎?是的。因爲需要子類覆蓋其方法後纔可以對子類實例化。
class AbstractDemo1
{
public static void main(String[] args)
{
Student s = new Student("旺財",23);
Worker w = new Worker("小強",30);
s.show();
s.work();
w.show();
w.work();
}
}
abstract class Person
{
int age;
String name;
Person(String name, int age){ //構造函數用於給子類進行初始化
this.name = name;
this.age = age;
}
void show(){
System.out.println("name="+this.name+"\n"+"age="+this.age);
}
abstract void work();
}
class Student extends Person
{
Student(String name, int age){
super(name,age);
}
void work(){
System.out.println("student is studying...");
}
}
class Worker extends Person
{
Worker(String name, int age){
super(name,age);
}
void work(){
System.out.println("worker is working...");
}
}
程序運行結果:name=旺財
age=23
student is studying..
name=小強
age=30
worker is working...