面向对象编程 封装继承

访问修饰符

访问修饰符 访问级别
public 公有地,外部可以访问
protected 受保护的,只有本类和派生类才能够访问
private 私有的,只有本类中可以访问

封装

字段封装完称为属性
使用封装访问到其他类中的一些私有字段,但可以通过添加条件来限制外部对齐修改。

// 字段
private string name;
// 属性
public string Name {
    //读取
    get => name;
    // 写入
    set => name = value;
}

继承

日常生活中继承一般来说从父母或长辈哪里得到或获得某些东西,比如小明的眼睛像母亲,并继承了父亲的坚强、勇敢、诚实、善良。
在面向对象的世界中也存在着继承特性,继承是面向对象程序设计的重要特性之一,继承的最大优点就是提供了代码的重用

在C#中只能继承一个类。
但可以继承多个接口。
继承用:表示

class Program {
    static void Main(string[] args) {
        Animal a = new Animal("企鹅", Sex.man, 11);
        Console.WriteLine("名字:{0},类型:{1},性别:{2},年龄:{3}", a.Name, a.GetType(), a.Sex, a.Age);
        Bird b = new Bird("麻雀", Sex.man);
        Console.WriteLine("名字:{0},类型:{1},性别:{2},年龄:{3}", b.Name, b.GetType(), b.Sex);
        Animal c = new Bird("大雁", Sex.man);
        Console.WriteLine("名字:{0},类型:{1},性别:{2}", c.Name, c.GetType(), c.Sex);
    }
}

// 性别
enum Sex {
    man,
    miss,
}

// 动物类
class Animal {
    // 名字公有地,子类可以继承,外部可以访问
    public string Name;
    // 性别受保护的,子类可继承,外部可以通过封装后的属性进行访问
    protected Sex sex;
    // 年龄私有的,子类不可继承,外部可以通过封装后的属性进行访问
    private int age;

    public Sex Sex {
        get => sex;
    }
    public int Age {
        get => age;
        set => age = value;
    }

    public Animal() {
    }
    public Animal(string name, Sex sex, int age) {
        Name = name;
        this.sex = sex;
        this.age = age;
    }
}

class Bird : Animal {
    public Bird() {
    }
    public Bird(string name, Sex sex) {
        Name = name;
        this.sex = sex;
    }
}
posted @   坞中客  阅读(24)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示