繼承

摘要:繼承

CLASS部分

        public class A
        {
            public string A_Name  {get;set;}
            public int A_Age { get; set; }
            public int A_fun1()
            {
                return 666;
            }
        }

        public class B : A
        {
            public void B_printName(string sName) 
            {
                Console.WriteLine(sName);
            }

            public void B_printAge(int iAge)
            {
                Console.WriteLine(iAge);
            }
        }

可以看到由於B繼承A

所以A B class的東西都可以點的到

B可以再根據A的不足之處去擴充

 


 

Interface部分

        static void Main()
        {
            ICount Tool = new Printer();
            Tool.PrintSomeThing();
            Console.WriteLine(Tool.Count(1, 2));
            Console.ReadLine();
        }

        interface ICount
        {
            void PrintSomeThing();
            int Count(int a, int b);
        }

        public class Printer : ICount
        {
            int ICount.Count(int a, int b)
            {
                return a + b;
            }

            void ICount.PrintSomeThing()
            {
                Console.WriteLine("write something");
            }

            public void NotInInterface()
            {
                Console.WriteLine("Not in interface method");
            }
        }

interface部分

用來宣告方法包含回傳類別,傳入參數但是不實作

 

class部分

繼承Interface,Interface裡的方法&欄位一定要實作出來否則編譯器會報錯

至於使用方式要注意一下

     回傳型別 InterfaceName.方法名稱();

 

程式呼叫部分

注意一下接收部分 左邊型別為INTERFACE,右邊型別為CLASS

Icount IC = new Printer(); 

好處是不管傳入甚麼東西的類別都是統一使用INTERFACE的函式

 

如今天使用的是多功能事務機,不同CLASS但是可以只約束他做PRINT的動作(該CLASS一樣要繼承)

 

Printer oP = new Printer();  //class物件

oP.類別屬性或方法 (不包含INTERFACE方法)

ICount IC = (ICount)oP;

IC.方法  (這樣就可以呼叫Interface的方法了)