一、抽象
使用 abstract 修飾
abstract 修飾類 抽象類
abstract 修飾方法 抽象方法
抽象方法,沒有實現的部分
注意:
抽象類中的抽象方法,強制子類去重寫
抽象類不能例項化物件(不能建立物件)
抽象類中:
成員變數,可以有成員變數,也可以有常量。
成員方法,可以有抽象方法,也可以有成員方法
構造方法,有構造方法。
注意:
抽象類中不一定有抽象方法,但是抽象方法一定存在抽象類中。
抽象類的子類,一定要重寫父類的所有抽象方法。
舉例
public
class
demo01
}abstract
class
animal
public
void fun()
public
abstract
void eat();// 定義乙個抽象方法 eat()
}class
catextends
animal
public
void eat()
}// 最後的列印結果
// 我是父類的抽象方法
// 貓吃魚
// 我是成員方法
1.乙個類就算沒有抽象方法,也可以定義成乙個抽象類,作用是禁止建立抽象類的物件出來,只能使用其子類。
2.abstract 和 哪些關鍵字不能共同使用
abstract 和 static
static 修飾方法 用法 用類名區呼叫,abstract 修飾抽象方向,沒有方法的實現,沒有實現部分的方法,只能是方法的生命,無法直接呼叫,所以不能共存。
abstract 和 final
final 修飾方法 不能被重寫。而abstract 修飾方法 就是為了讓子類重寫方法,所以不能共存。
abstract 和 private
private 修飾方法,只能本類訪問,子類無法訪問,沒有辦法重寫。
二、介面
廣義的介面:規則
定義介面的寫法:
inte***ce 介面名{}
介面特點:
介面中,只能宣告抽象方法
介面也不能例項化物件(誰要用介面,就誰要去實現介面中的方法。)可以使用多台的方式建立子類(實現類的物件)
介面注意:
成員變數 :只能有常量, public static final 常量名 = 初值,當你在介面中宣告變數時,系統預設回事public static final 修飾變數。
成員方法:只有抽象方法,沒有成員方法
構造方法:沒有構造方法。
類和類的關係:
類和類 之間 是繼承關係 單繼承和多層繼承類和介面的關係:
類和介面 是實現的關係,可以單實現,也可以多實現。介面和介面的關係:
介面和介面的關係,可以多繼承也可以單繼承
舉例
public
static demo02
}// 定義乙個介面 inte***ce
inte***ce
intera
class
person
implements
intera
}inte***ce
interx
inte***ce
intery
}inter face interz extends interx, intery
class
carimplements
interz
public
void fun1()
}//最終的列印結果
// 我是人類的列印
// 我是fun
// 我是fun1
jdk 1.8之後進行了優化。
優化之後可以寫成員方法:靜態的方法, 預設的方法不能直接呼叫預設方法,因為介面不能建立物件
必須使用該介面的實現類的物件去呼叫
預設方法在實現類中不強制你重寫。
抽象類 和 介面的區別
成員變數
抽象類:可以有成員變數,也可以有常量成員方法介面: 只可以有常量
抽象類:可以有成員方法,也可以由抽象方法構造方法介面: 可以有靜態成員方法,可以有預設成員方法,可以有抽象方法
抽象類:有構造方法介面:沒有構造方法
舉例
public
class demo03
}inte***ce intera
public
default
void
defaultsayhi()
}class interaimp implements intera
public
void
defaultsayhi()
}
Java 介面和抽象類
介面,inte ce,介面泛指供別人呼叫的方法和函式。介面的形式 public inte ce inte cename 介面的特點 1 介面中可以含有變數和方法。2 其中變數被隱式的指定為public static final 變數並且只能是這種變數。3 介面的方法隱式的指定為public abst...
java抽象類和介面
抽象類 乙個類中只要有乙個抽象方法 那麼這個類就必須是抽像的 抽象類必須要進行例項化 public abstract class animal class cat extends animal 介面 從本質上講介面是一種特殊的抽象類 介面中所有的方法都是抽象的 並且介面中的成員都是public 介面...
Java抽象類和介面
含有abstract修飾符的class即為抽象類,abstract類不能建立的例項物件。含有abstract方法的類必須定義為abstract class,abstract class類中的方法不必是抽象的。abstract class 類中定義抽象方法必須在具體 concrete 子類中實現,所以...