標籤:style extends 建立對象 abstract generate nal string size family
抽象類別的特點:1.當方法只有聲明沒有具體實現的時候,需要用abstract修飾符修飾。抽象方法必須定義在抽象類別當中,所以抽象類別也需要用abstract修飾2.抽象類別不可以被執行個體化,為什麼呢? 因為調用抽象方法沒有意義3.抽象類別的子類必須覆蓋所有的父類的抽象方法之後,子類才能夠被執行個體化,否則子類也還是抽象類別;
class A
extends chouxiang { @Override
void bark() {//只有覆蓋了bark()方法,才能將A類執行個體化 //
TODO Auto-generated method stub System.
out.println("你說呢"); }}
public
abstract
class chouxiang {
abstract
void bark();//必須讓子類重寫才有意義
private
int bark(
int a,
int b) {//抽象類別中可以有非抽象方法,即不需要子類必須重寫該方法
return a + b; }
public
static
void main(String[] args) { A a =
new A(); a.bark();//調用的是重寫的無參的bark()方法 }}
有,用於對子類的初始化
可以,但是很少見,目的就是不讓子類建立對象
1.private:父類中的private修飾的方法對於子類不可見,即子類無法對方法進行覆蓋 2.static:當使用static修飾的時候,就可以直接使用類名調用該方法了,那就不用讓子類進行實現了;除此之外,即便直接調用了也只是一個方法聲明,並沒有意義。 3.final:abstract的意義在於讓子類對修飾的方法進行覆蓋,但是final卻是不讓方法進行覆蓋,兩者矛盾
是的,因為需要其子類覆蓋其方法才有意義
java基礎之抽象類別的介紹