import uikit
var str = "hello, playground"
// 1 類的繼承
// 繼承只能發生在類型別上,不能發生在列舉和結構體上面
// 2 構造器過程中的安全檢查
// 類的構造過程有一下
// 第一步:類的構造過程中包含兩個階段,第一步分配記憶體,初始化子類儲存屬性,沿著構造器鏈向上初始化父類儲存屬性。
// 第二步:從頂部構造器鏈往下,對每個類進行進一步修改儲存屬性,呼叫例項方法等處理。
// 建立乙個person 類
class person
}// 建立乙個student 繼承
class student:person
// 3 便利構造器
// 便利構造器必須小呼叫其他構造器**人,然後再為任意屬性賦新值
convenience init(name:string)
}var s = student(name: "curry");
print(s.name);
// 3 構造器繼承
// 類的構造器**有兩種,自己編寫和父類繼承,繼承的條件
// 如果子類沒有指定構造器 自動繼承父類的構造器
// 如果子類提供了所有父類指定構造器的實現,無論是通過條件1繼承過來的,還是通過自己編寫的,都自動繼承父類所有父類的便利構造器
// 4 重寫
// 乙個類繼承另外乙個類的屬性
// 4.1 屬性重寫
class p1
}class s1:p1
set}
init(name: string, age: int,schoole:string)
}var s1 = s1(name: "mike", age: 85, schoole: "kkk");
s1.age = 2;
print(s1.age);
// 4.2 方法重寫
// 在子類中重寫父類繼承來的例項方法和靜態方法
class p3
func printinfo() -> ()
class func sayhi() -> ()
}class s3:p3
// 重寫靜態方法
override class func sayhi() -> ()
}var s3 = s3(name: "ant", age: 12);
s3.printinfo();
s3.sayhi();
// 4.3 下標重寫
// 在類的定義前面使用final 關鍵字,表示此類不能別繼承
// 5 型別檢查與轉換
// 5.1 is 操作符 判斷乙個例項是否是某個類的型別 是的話返回true
if s3 is s3
// 5.2 使用as操作符
// 物件型別轉換一定發生在繼承的前提下
// 5.3 any 和 anyobject
// anyobject 可以表示任何類的例項
// any 可以表示任何型別 包括類和其他資料型別 int double 等基本資料型別
Day8 類的繼承
觀察兩個類的成員組成 提取相同的屬性和方法 寵物是父類,狗和金魚是子類。子類具有父類的屬性和方法。是使用已存在的類作為基礎建立新類的技術。單一繼承 只有乙個父類。父類可以叫做基類 超類。子類可以叫做派生類。子類可以繼承父類中的成員 屬性和方法 但是需要注意 1.private的成員不能繼承 2.子類...
c 筆記(8) 類的繼承 成員的重名 多繼承
1.類之間的關係 has a 包含關係,用以描述乙個類由多個 部件類 構成。實現has a關係用成員表示,即乙個類中的資料成員是另一種已經定義的類。uses a 乙個類部分地使用另乙個類。通過類之間成員函式的相互聯絡,定義友元或物件引數傳遞實現。is a 機制稱為 繼承 關係具有傳遞性,不具有對稱性...
python 類 繼承 python 類的繼承
1 所用的類都可以被繼承 2 沒有繼承其他類的類必然有乙個父類 object 3子類可以擁有父類的 init 裡的類容 派生子類除了父類的一些屬性,還會有自己的屬性和方法,這些就叫派生 如何使用 實現 class animal def init self,name,attack,hp self.na...