【C#】封装 继承 多态(面向对象的三大特性)


继承

使用继承,可以把对象的相同属性和方法写到父类中,然后在子类中继承父类中的属性和方法,这样便于封装,也简写了代码。不同的属性和方法在各自的子类中单独声明。

可以通过查看类图,来查看程序中父类和子类,继承关系有箭头指向。

所有的类都继承了object类,当我们定义一个类的时候,如果没有定义继承关系,那么就默认为继承object类

#region  继承
            Person p = new Person();
            Teacher t = new Teacher();
            t.Name = "老牛最邪恶";
            t.Age = 50;
            t.Gender = '女';
            t.Sayhi();
            //t.Show();
            Console.ReadKey();

            Student stu = new Student();
            //使用继承,可以把学生和老师的相同点继承于人类,可以删除相同代码,
#endregion
//使用继承,可以把学生和老师的相同点继承于人类,删除相同的代码,便于封装
  public class Person
    {
   
   
        string _name;
        public string Name
        {
   
   
            get {
   
    return _name; }
            set {
   
    _name = value; }
        }
        int _age;
        public int Age
        {
   
   
            get {
   
    return _age; }
            set {
   
    _age = value; }

        }
        char _gender;
        public char Gender
        {
   
   
            get {
   
    return _gender; }
            set {
   
    _gender = value; }
        }
        public void Show()
        {
   
   
            Console.WriteLine("我是人,别害怕");
        }

    }
    
    public class Teacher:Person //使用冒号继承,冒号后面的就是父类的名字
    {
   
   
       
        public void Sayhi()
        {
   
   
            Console.WriteLine("我是老师,别害怕,我叫{0},我今年{1}岁,我是{2}生",this.Name,this.Age,this.Gender);
        }
    }
    
    public class Student:Person //学生类继承人类
    {
   
   
    
        public void Sayhello()
        {
   
   
            Console.WriteLine("我是学生,别害怕");
        }
    }

显示调用父类的构造函数

子类中如果有参数构造函数,默认的调用父类中的无参数构造函数,这时容易报错。
如果要调用父类的有参数构造函数,需要加关键字base。

  public class Student:Person
    {
   
   
    //加上base,调用父类的构造函数
        public Student(string name, int age, char gender, string id):base(name,gender,age)
        {
   
   
           
            this._id =id;
        }
        string _id;

        public string Id
        {
   
   
            get {
   
    return _id; }
            set {
   
    _id = value; }
        
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

张_Laura

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

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

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

打赏作者

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

抵扣说明:

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

余额充值