C#密封類和密封方法--C#基礎

來源:互聯網
上載者:User

標籤: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#基礎

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.