zoukankan      html  css  js  c++  java
  • 父类、接口二三事

    static class Program
        {
            /// <summary>
            /// 应用程序的主入口点。
            /// </summary>
            [STAThread]
            static void Main()
            {
                IFactory i = new Children();
                i.Voice();
                i.Listen();
    
                Factory f = new Children();
                f.Voice();
                f.Listen();
                Console.ReadKey();
            }
        }
    
        public interface IFactory
        {
            void Voice();
            void Listen();
            void Write();
        }
        public abstract class Factory
        {
            public virtual void Voice()
            {
                Console.WriteLine("factory");
            }
    
            public abstract void Listen();
    
            public abstract void Write();
        }
        public class Children : Factory,IFactory
        {
            //当继承了具有相同方法的父类和接口时,默认子类继承了父类的方法,即继承时已实现了接口的同名定义方法。不需要再次实现接口该方法了。
            //系统也会默认不再提示实现。认定已实现。且若要重新实现,只能重写父类的同名定义方法,或者new覆盖该方法。不能以接口实现的方式实现
            //该方法。因为方法已经通过父类实现。若父类同名定义的方法为抽象方法,则必须重写父类的方法。同理此时,也不用实现接口定义的方法,因为自父类继承已存在该方法。
            public override void Listen()
            {
                Console.WriteLine("listen");
            }
            public override void Write() => Console.WriteLine("write");
            //public override void Voice()
            //{
            //    base.Voice();
            //    Console.WriteLine("children");
            //}
            //public void Voice()
            //{
            //    throw new NotImplementedException();
            //}
        }

    个人理解,不对请指正!

    关注细节,关注容易忽略的,开发中觉得理所当然的,但其实只是一知半解。

  • 相关阅读:
    mysql问题: alter导致速度慢
    MySQL的mysql_insert_id和LAST_INSERT_ID
    linux动态链接库---一篇讲尽
    jsoncpp第二篇------API
    SVN第二篇-----命令集合
    svn第一篇----入门指南
    数据结构之堆
    SZU4
    SZU1
    SZU2
  • 原文地址:https://www.cnblogs.com/LL-723/p/9669144.html
Copyright © 2011-2022 走看看