2-7 类的继承,base和this区别,protect案例总和

//base访问基类的构造函数 this访问本类的构造函数

 注意隐私数据仅自己类可使用,protect可被其他派生类使用

继承表达式:class B : A{}

// See https://aka.ms/new-console-template for more information
using System.Diagnostics;
using System;
using System.Linq;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApp1
{
    class SetDate 
    {
        public int Age{ get;set; }
    }
    class dongwu//注意隐私数据仅自己可使用,protect可被其他使用
    {
        protected SetDate SetDate = new SetDate() { Age=1 };
        public string Name { get; set; }//has a

        //当dongwu自己有一个方法的华用base
       
    }
    class A {
        //base访问基类的构造函数 this访问本类的构造函数
        public A() { Console.WriteLine("A()"); }
        public A(string a):this() { Console.WriteLine("A(string)"); }//调用上个A
        public A(int a):this("123") { Console.WriteLine("A(int)"); }//调用上个A

    }
    class B : A
    {
        public B() : base("你好") { Console.WriteLine("B()"); }//base通过你输入的类型自动选择所要调用的基类构造函数
    }
    class Dog: dongwu //只能继承一个基类//is a
    {
       

        public void Shoot() { Console.WriteLine("{0}岁的"+base.Name + "汪汪",SetDate.Age); }
    }
    class Cat:dongwu
    {
        

        public void Shoot() { Console.WriteLine("{0}岁的" + this.Name + "喵喵"); }
    }



    class Program
    {

        static void Main(string[] args)
        {

            A a = new A(123);//先打印A();再A(string);再A(int)
            B b = new B();//先调用基类构造函数后派送类
            //
            var dog = new Dog() { Name = "小黑:" };
            dog.Shoot();
            var cat = new Cat() { Name = "胖橘:" };
            cat.Shoot();
         


        }


    }

}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

视觉小萌新

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值