• 揭秘子类构造


    1.通过子类无参构造函数创建子类实例

    创建父类Person和子类Student。

    public class Person
    {
        public Person()
        {
          Console.WriteLine("我是人");
        }
    }
    public class Student : Person
    {
        public Student()
        {
          Console.WriteLine("我是学生");
        }
    }

    2.在客户端通过子类无参构造函数创建子类实例。

    class Program
    {
        static void Main(string[] args)
        {
          Student student = new Student();
          Console.ReadKey();
        }
    }
     

    二、通过子类有参构造函数创建子类实例

    再同时为子类和父类添加有参构造函数。

    public class Person
    {
        public Person()
        {
          Console.WriteLine("我是人");
        }
        public Person(string name)
        {
          Console.WriteLine("我是人,我的名字叫{0}", name);
        }
    }
    public class Student : Person
    {
        public Student()
        {
          Console.WriteLine("我是学生");
        }
        public Student(string name)
        {
          Console.WriteLine("我是学生,我的名字叫{0}", name);
        }
    }

    三、在子类中明确指出调用哪个父类构造函数

    以上,默认调用了父类的无参构造函数,但如何调用父类的有参构造函数呢?
    --在子类中使用base

    在子类Student中的有参构造函数中使用base,明确调用父类有参构造函数。

    public class Student : Person
    {
        public Student()
        {
          Console.WriteLine("我是学生");
        }
        public Student(string name)
          : base(name)
        {
          Console.WriteLine("我是学生,我的名字叫{0}", name);
        }
    }

    四、通过子类设置父类的公共属性

    在父类Person中增加一个Name公共属性,并在父类的构造函数中对Name属性赋值。

    public class Person
    {
        public string Name { get; set; }
        public Person()
        {
          Console.WriteLine("我是人");
        }
        public Person(string name)
        {
          this.Name = name;
          Console.WriteLine("我是人,我的名字叫{0}", name);
        }
    }
  • 相关阅读:
    leetcode 337. House Robber III
    leetcode 366 Find Leaves of Binary Tree
    leetcode 250 Count Univalue Subtrees
    leetcode 132 Palindrome Pairs 2
    leetcode 131 Palindrome Pairs
    leetcode 336 Palindrome Pairs
    leetcode 214 Shortest Palindrome
    leetcode 9 Palindrome Number
    Socket编程
    Zookeeper
  • 原文地址:https://www.cnblogs.com/chengzixin/p/6567199.html
Copyright © 2020-2023  润新知