真的很棒,很容易理解,忍不住再說一次。
教程中說到final關鍵字的使用是然修飾的類不能被繼承,但是沒有說明是為什麼,再查詢網上的一些資料看過後,個人理解是處於安全考慮,或者被修飾的類不想被繼承,所以用final來修飾,第乙個解答還明白為什麼,但是第二個就有點蒙了,也就只能當做了解一下了,還有,被final修飾的類裡面的成員方法預設也是被修飾的為final方法的。從這裡也就是能知道,final也是能修飾方法的,也就是說這個方法不能被過載了。
final除了能修飾類、方法之外,最多出現的是修飾變數,而修飾的變數有個特點,一旦初始化,這個變數就不能被改變了。
final修飾類的格式:
final class 類名 extends 父類
public final void run()
根據教程上的介紹,抽象類給我的感覺是說話不做事的,他是叫其他人做事情的,官方的介紹是:「抽象類是指在類中定義方法,但是並不去實現它,而在它的子類中去具體的實現。」
抽象類的定義:
定義抽象類是通過關鍵字「abstract」
修飾符 abstract 類名
除了類,還可以定義抽象方法:
修飾符 abstract 返回值型別 方法名();
有個注意事項:在抽象類中的方法不一定是抽象方法,但是含有抽象方法的類,一定是抽象類。
例子:
//抽象類的宣告
abstract class animal
abstract void breath();
void sleep()
}// tiger 繼承抽象類 animal
class tiger extends animal
void breath()
}class fish extends animal
void breath()
}// 通過該類演示物件的構造過程
public class tigerdemo
}
執行結果:
魚是用腮呼吸的
老虎是用肺呼吸的
個人感覺和多型類似(應該是多型吧),這裡要注意,不能直接呼叫子類的方法,要轉換型別成子類本身才能呼叫子類的方法。
((fish) animal1).swim();
((tiger) animal2).tigerrun();
object類
在教程中,說了一種類,這個類是全部類的「爸爸」,這個類是「object類」。如果定義了乙個類,而這個類沒有去繼承其他的類,那麼,這個類將會預設的繼承object類,從而繼承它裡面的方法,但是如果乙個類繼承了乙個父類,那這個父類沒有繼承其他的父類的話,這個父類就會預設繼承object類,總而言之,是個類,就會繼承object類。
object類中有一些常用的方法,分別是tostring()、equals(),這兩個很常用,
tostring()是取得物件資訊的方法、equals()是比較兩個物件是否相等
JAVA基礎學習 繼承筆記
繼承 類與類之間的關係,非物件跟物件之間的關係 1.目的 繼承是乙個父類到另乙個子類的功能延續,體現功能的復用 注 可以 一父多子 注 乙個類只能有乙個直接父類 注 繼承具有傳遞性 注 final關鍵字修飾的類不能被繼承 public class student extends person 2.繼...
JAVA基礎學習 繼承筆記
繼承 類與類之間的關係,非物件跟物件之間的關係 1.目的 繼承是乙個父類到另乙個子類的功能延續,體現功能的復用 注 可以 一父多子 注 乙個類只能有乙個直接父類 注 繼承具有傳遞性 注 final關鍵字修飾的類不能被繼承 public class student extends person 2.繼...
JAVA基礎 繼承
1.什麼是繼承?繼承 extends 是從已有的類中 父類 派生出新的類 子類 子類具有父類的屬性和行為,並可以在父類的基礎上增加新的屬性 行為。例如 public class people public class student extends people 父類people具有 name ag...