zoukankan      html  css  js  c++  java
  • 构造函数中base与this的区别

    base是对父类的引用,而this是对类本身的引用。

    namespace ConsoleApplication1
    {
        public class BaseClass
        {
            private string name;
            private int age;
            private string addr;
            public BaseClass()
            {
                Console.WriteLine("No Info");
            }
            public BaseClass(string name)
            {
                this.name = name;
                Console.WriteLine("name=" + this.name);
            }
            public BaseClass(string name, int age)
            {
                this.name = name;
                this.age = age;
                Console.WriteLine(string.Format("name={0},age={1}" ,this.name,this.age));
            }
    
            public BaseClass(string name, int age,string addr)
            {
                this.name = name;
                this.age = age;
                this.addr = addr;
                Console.WriteLine(string.Format("name={0},age={1},addr={2}", this.name, this.age, this.addr));
            }
        }
    
        public class ItemClass : BaseClass
        {
            private string name;
            private int age;
    
            public ItemClass()
                : this("demo")
            {
                //Console.WriteLine("No Info");
            }
            public ItemClass(string name)
                : this("jimmy", 20)
            {
                this.name = name;
                Console.WriteLine("name=" + this.name);
            }
            public ItemClass(string name, int age)
            {
                this.name = name;
                this.age = age;
                Console.WriteLine(string.Format("name={0},age={1}", this.name, this.age));
            }
            public ItemClass(string name,int age,string addr)
                : base("jeason", 20,"shanghai")
            {
                Console.WriteLine("name=" + name);
            }
    
            public static void Main()
            {
                ItemClass ic1 = new ItemClass("mike");
                ItemClass ic2 = new ItemClass();
                ItemClass ic3 = new ItemClass("mike",21,"chengdu");
            }
        }
    } 

    子类与基类的构造函数执行顺序:

    先调用父类的构造函数进行初始化,再调用继承类的构造函数,如果没有在继承类中指明父类的构造函数,则默认调用父类中无参构造函数,然后调用继承类的构造函数。 

  • 相关阅读:
    中国剩余定理(SCAUOJ 1077)
    uva 11426 GCD
    LA 4119 Always an integer (数论+模拟)
    uva 12003 Array Transformer (线段树套平衡树)
    uva 10253 Series-Parallel Networks (整数划分+多重集)
    LA 4123 Glenbow Museum
    uva 11361 Investigating Div-Sum Property
    2013多校训练赛第二场 总结
    uva 11174 Stand in a Line (排列组合)
    canvas 画椭圆
  • 原文地址:https://www.cnblogs.com/chenh/p/7895592.html
Copyright © 2011-2022 走看看