abstract
抽象類是不能被實例化的類,可以由其子類來實例化,就像模板一樣(就像貓科,犬科),目的是根據其格式和要求來新建對象。當一個類被聲明爲抽象類時,要在這個類前面加上修飾符abstract。
抽象類中的兩種方法:抽象方法和非抽象方法
抽象方法前面由abstract關鍵字,這種方法只聲明返回的數據類型、方法名稱和所需的參數,沒 有方法體,也就是說抽象方法只需要聲明而不需要實現。
非抽象方法和正常類中方法一樣。
抽象類中不一定包含抽象方法,但是包含抽象方法的類一定要被聲明爲抽象類。
抽象類中可以包含構造方法, 但是構造方法不能被聲明爲抽象。
abstract不能與private、static、final、native並列修飾同一個方法或類。
程序舉例:
abstract class Animal //定義抽象類
{
String str;
Animal(String s) //定義抽象類的一般方法
{
str=s;
}
abstract void eat(); //定義抽象方法
}
class Horse extends Animal //定義繼承Animal的子類
{
String str;
Horse(String s)
{
super(s); //調用父類的構造方法
}
void eat() //重寫父類的抽象方法
{
System.out.println("馬吃草料!");
}
}
抽象類和接口的區別
1.一個類可以實現多個接口,但只能繼承一個抽象類,它不能是貓科類同時還是犬科類
2.一個抽象類可以有若干抽象方法(可以是抽象的,也可以是非抽象的),接口裏的都是抽象方法,即使不用abstract關鍵字
3.抽象類可以有構造方法,而接口不能有
4.抽象類的修飾符可以是public ,private ,protected或無修飾符(包內可見),而接口的修飾符只能是public ,或無修飾符(包內可見)
5.抽象類是從object類派生而來,它繼承了object的clone()和equals()方法。