//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();
}
}
}