C#介面(interface)與抽象類別(abstract class)比較

介面(interface):於介面中定義方法,屬性,和事件。 如果要使用(implementation)必須通過類別來繼承介面才能使用。

介面特點:
*不能對介面進行實列化
*類別與介面都能繼承一個以上的介面,介面也可繼承介面。
*聲明介面時,不允許定義修飾詞,ex:public , private ,static.

介面語法:

//宣告
interface 介面名
{
    [資料型別] 屬性名稱
    {
        get;
        set;
    }
    [資料型別/void] 方法名稱();
}

//實作
class 類別名稱:介面名稱
{
    private  資料型別 欄位名稱=預設值;
    public 資料型別 [介面名稱.]屬性名稱
    {
        get{return 欄位名稱;}
        set{欄位名稱=value;}
    }
    [資料型別/void]介面名稱.方法名稱()
    {//方法內容;
    }
}

抽象類別(Abstration class):只能用來提供給其它類別繼承的基底類別。
特點:
*抽象類別不能進行實體化
*抽象方法只能於抽象類別中定義,不能使用static,virtual關鍵字
*抽象類別不能用sealed修飾詞

//宣告:
abstract class 抽象類別名稱
{
    //不實作程式碼宣告
     public abstract 資料型別 屬性名稱{get;set;}
     public abstract 資料型別 方法名稱(參數群);
    //實作程式碼宣告
    public 資料型別 方法名稱(參數群)
    {//內容;}
}

//繼承
class 繼承類別名稱:抽象類別名稱
{
    public override 資料型別 方法名稱(參數群)
    {
        //程式碼
    }
    public override 資料型別 屬性名稱
    {
        get{return 欄位名稱;}
        set{欄位名稱=value;}
    }
}

abstract class 與 interface 比較

                                            abstract class                        interface

功能                                    提供樣板                            提供樣板
可實作方法與屬性            可以                                    不可
執行實體化                        否                                        否
使用方法                            被繼承才能用                    需要被繼承並且實作才能用
便用時機                            有繼承關系的類用            可供合不相關的類使用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

物欲添彩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值