標籤:size 類庫 ring ide linq ons nbsp microsoft eric
1、密封類1)不是所有的類都可以繼承,不能別繼承的類叫做密封類。如果一個類不希望被繼承、被派生可以採用關鍵字sealed,下面Class2不能繼承Class1Class1.cs:namespace 密封類和密封方法
{
//如果一個類不希望被繼承、被派生可以採用關鍵字sealed
public sealed class Class1
{
}
}Class2.csnamespace 密封類和密封方法
{
class Class2:Class1//不可以繼承,Class1有修飾符sealed
{
}
}2)密封類中不能包含虛方法(virtual)和抽象方法(abstract),抽象方法和虛方法的存在就是要用來繼承的,密封的類沒有為衍生類別實現實現虛方法和抽象方法的機會。3).NET類庫大量使用密封類,使希望從這些類從這些類中派生出自己的類的第三方開發人員無法訪問這些類,例如string就是密封類2、密封方法1)密封方法:用修飾符sealed進行標記的方法2)作用:使用sealed修飾可以防止衍生類別進一步重寫該方法3)如果執行個體方法聲明包含sealed修飾符,則它必須包含override修飾符4)不能重寫密封方法,樣本:(Class3不能重寫Class2中的Write()方法)Class3.cs:class Class3:Class2
{
//public override sealed void Write() {
// Console.WriteLine("Write()這個方法能否被重寫");
//}
//不能重寫密封方法
}Class2.cs:public class Class2:Class1
{
public sealed override void Write()
{
Console.WriteLine("這是一個密封方法");
}
}Class1.cs: public class Class1 {
public virtual void Write() {
Console.WriteLine("這是一個未密封的方法");
}
}5)源碼筆記:Program.cs:using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace 密封類和密封方法
{
//密封類中不能包含虛方法(virtual)和抽象方法(abstract),抽象方法和虛方法的存在就是要用來繼承的,密封的類沒有為衍生類別實現實現虛方法和抽象方法的機會
//.NET類庫大量使用密封類,使希望從這些類從這些類中派生出自己的類的第三方開發人員無法訪問這些類,例如string就是密封類
//密封方法:用修飾符sealed進行標記的方法
//作用:使用sealed修飾可以防止衍生類別進一步重寫該方法
//如果執行個體方法聲明包含sealed修飾符,則它必須包含override修飾符
//不能重寫密封方法
//public override sealed void Wite() {
// Console.WriteLine("Write()這個方法能否被重寫");
//} class Program
{
static void Main(string[] args)
{
Class2 myClass2 = new Class2();
myClass2.Write();
}
}
}Class1.cs:using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace 密封類和密封方法
{
//如果一個類不希望被繼承、被派生可以採用關鍵字sealed
public class Class1 {
public virtual void Write() {
Console.WriteLine("這是一個未密封的方法");
}
}
}Class2.cs:using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace 密封類和密封方法
{
public class Class2:Class1
{
public sealed override void Write()
{
Console.WriteLine("這是一個密封方法");
}
}
}Class3.cs:using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace 密封類和密封方法
{
//不是所有的類都可以被繼承,不能被繼承的類稱為
//
class Class3:Class2
{
//public override sealed void Write() {
// Console.WriteLine("Write()這個方法能否被重寫");
//}
//不能重寫密封方法
}
}
C#密封類和密封方法--C#基礎