首页 > 编程语言 >面向对象编程 封装继承

面向对象编程 封装继承

时间:2022-10-23 21:11:11浏览次数:45  
标签:Animal 封装 name 继承 sex 面向对象编程 Sex public

访问修饰符

访问修饰符 访问级别
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;
    }
}

标签:Animal,封装,name,继承,sex,面向对象编程,Sex,public
From: https://www.cnblogs.com/wuzhongke/p/16819060.html

相关文章

  • 初始面向对象编程
    OOP面向对象编程类的结构classStudent{}类与对象classProgram{//主方法(程序入口)staticvoidMain(string[]args){//张三是Student实例......
  • 面向对象三大特性之封装
    封装的概述封装应该有两个含义,一是把对象的属性和行为看成一个密不可分的整体,将两者封装在对象中。另一层含义是“信息屏蔽”,把不需要外界知道的信息隐藏起来,有些对象的属......
  • 【maven】什么是坐标(依赖)继承与模块、web项目启动&访问
    目录​​2.Maven基础​​​​2.1坐标​​​​2.1.0什么是坐标(依赖)​​​​2.1.1获得坐标​​​​2.1.2使用坐标​​​​2.1.3依赖范围​​​​2.1.4依赖传递​​​......
  • 封装一个简单的乐观锁方法 -基于Laravel 8
    在模型文件中写入以下代码:/***@function实现一个简单的laravel乐观锁*@returnint受影响的函数*@othervoid*/publicfuncti......
  • java第四讲-继承与多态-InheritsAndPolymorphismSourceCode
    1.继承条件下类的访问权限public:外界可自由访问;private:外界不可访问;protected:同一包中的子类都可以访问,另一包中的子类(派生于同一个父类)也可以访问;default:如果......
  • Java不能继承多个类?内部类帮你解决这个问题
    Java不能继承多个类?内部类帮你解决这个问题内部类在Java中也是一个很重要的概念,很多类中都存在内部类。内部类与内部类的对应的是外围类,内部类可以操作外围类的所有成员,p......
  • 回顾缓存穿透、缓存雪崩、缓存击穿及封装Redis工具类
    缓存穿透问题的解决思路缓存穿透:缓存穿透是指客户端请求的数据在缓存中和数据库中都不存在,这样缓存永远不会生效,这些请求都会打到数据库。常见的解决方案有两种:缓存......
  • C++ 核心 4.1 类的封装
    4类和对象面向对象三大特性:封装、继承、多态万物皆对象。对象=属性+行为类是抽象的对象。比如路上有很多(具体的)车,但抽象出来都属于车。定义类的语法:class类名{......
  • Java程序设计语言第四讲,继承与多态
    Java中通过extends实现继承并且,Java中只允许单继承,从而避免里多继承中可能产生的父类属性冲突问题。子类自动拥有父类声明的public和protected的成员。 继承条件下的......
  • 为了讲明白继承和super、this关键字,群主发了20块钱群红包
    摘要:以群主发红包为例,带你深入了解继承和super、this关键字。本文分享自华为云社区《群主发红包带你深入了解继承和super、this关键字》,作者:共饮一杯无。需求群主发随......