国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

C#引用訪問權限分析

2020-01-24 02:15:48
字體:
來源:轉載
供稿:網友

本文實例分析了C#引用訪問權限問題。分享給大家供大家參考。具體分析如下:

同樣代碼表現的不同行為:
 
創建基類(Super)和派生類(Sub)每個類有一個字段field和一個公共方法getField,并且使用內聯的方式初始化為1,方法getField返回字段field。C#和Java代碼及運行結果如下

復制代碼 代碼如下:
class Super
{
        public int field = 0;
 
        public int getField()
        {
            return field;
        }
}

class Sub : Super
{
        public int field = 1;
 
        public int getField()
        {
            return field;
        }
}

class Program
{
        private static void Main(string[] args)
        {
            Super sup = new Sub();
            Console.WriteLine("sup.getField() result:" + sup.getField());
            Console.ReadKey();
        }
}


 
Java代碼如下:
復制代碼 代碼如下:
class Super {
    public int field = 0;
    public int getField() {
        return field;
    }
}
 
class Sub extends Super {
    public int field = 1;
    public int getField() {
        return field;
    }
}
 
public class polymorphicDefects {
    public static void main(String[] args) {
        Super sup = new Sub();
        System.out.println("sup.getField() result:" + sup.getField());
    }
}

 
Java代碼運行結果表現出了多態性,而C#的方法并沒有表現出多態性。更具體的說C#中對象sub并沒有調用自己實際類型Sub中的方法而是去調用父類的方法。
 
可能用慣了Java的童鞋,突然使用C#在一點上有些許不習慣,其實C#團隊在這里加入了一個概念,就是引用訪問權限,一個引用代表著他的訪問權限,Sub的引用僅能對Sub類型中自己的方法進行訪問。
 
當然C#的方法不是支持多態,只是使用虛方法來表現方法的多態性,可看下面的例子:
復制代碼 代碼如下:
class Super
{
        public int field = 0;
 
        public virtual int getField()
        {
            return field;
        }
}

class Sub : Super
{
        public int field = 1;
 
        public override int getField()
        {
            return field;
        }
}

class Program
{
        private static void Main(string[] args)
        {
            Super sup = new Sub();
            Console.WriteLine("sup.getField() result:" + sup.getField());
            Console.ReadKey();
        }
}


 
接下來我想說說我對C#引入引用訪問權限的看法。引入了引用訪問權限的C#比Java更加的強大了,也比Java多了一個新的特性,當然事情都是有兩個方面的,對引用那個訪問權限的引入也使C#更加復雜與不易。

希望本文所述對大家的C#程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 台安县| 平遥县| 台南市| 嘉祥县| 巴塘县| 讷河市| 公安县| 方山县| 抚宁县| 隆子县| 白朗县| 丰顺县| 罗甸县| 锦屏县| 新平| 麦盖提县| 仁化县| 乌拉特中旗| 封开县| 上栗县| 出国| 高要市| 康保县| 永修县| 莲花县| 通河县| 苍溪县| 岑巩县| 屏山县| 墨竹工卡县| 铜鼓县| 安化县| 德州市| 保山市| 肇州县| 马龙县| 巧家县| 紫阳县| 收藏| 马龙县| 河源市|