unity C#中的封装、继承和多态简单易懂的经典实例

这篇具有很好参考价值的文章主要介绍了unity C#中的封装、继承和多态简单易懂的经典实例。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


C#中的封装、继承和多态是面向对象编程(OOP)的三大核心特性。下面分别对这三个概念进行深入解释,并通过实例来说明它们在实际开发中的应用。

封装 (Encapsulation)

实例1:

public class BankAccount
{
    private decimal balance; // 私有变量,封装内部状态

    public BankAccount(decimal initialBalance)
    {
        this.balance = initialBalance;
    }

    // 公共方法,提供访问私有数据的受控方式
    public decimal GetBalance()
    {
        return balance;
    }

    public void Deposit(decimal amount)
    {
        if (amount > 0)
            balance += amount;
    }

    public void Withdraw(decimal amount)
    {
        if (amount > 0 && amount <= balance)
            balance -= amount;
    }
}

在这个例子中,BankAccount 类封装了账户余额(balance),外部不能直接修改它,只能通过 DepositWithdraw 方法来进行操作,这样保证了数据的安全性和完整性。

继承 (Inheritance)

实例2:

public class Animal
{
    public string Name { get; set; }
    public int Age { get; set; }

    public virtual void Eat()
    {
        Console.WriteLine("动物正在吃东西...");
    }
}

public class Dog : Animal
{
    public bool IsTrained { get; set; }

    // 重写父类方法以提供更具体的行为
    public override void Eat()
    {
        Console.WriteLine("狗狗正在吃狗粮...");
    }

    public void Bark()
    {
        Console.WriteLine("狗狗在叫!");
    }
}

// 使用示例:
Dog myDog = new Dog() { Name = "小黑", Age = 3, IsTrained = true };
myDog.Eat(); // 输出 "狗狗正在吃狗粮..."
myDog.Bark(); // 输出 "狗狗在叫!"

在这里,Dog 类从 Animal 类继承而来,继承了其属性并重写了 Eat 方法,同时添加了一个独有的 Bark 方法,体现了“继承”带来的代码复用和扩展性。

多态 (Polymorphism)

实例3:

public abstract class Shape
{
    public abstract double Area();
}

public class Circle : Shape
{
    public double Radius { get; set; }

    public override double Area()
    {
        return Math.PI * Radius * Radius;
    }
}

public class Square : Shape
{
    public double Side { get; set; }

    public override double Area()
    {
        return Side * Side;
    }
}

public static class Program
{
    public static void DisplayArea(Shape[] shapes)
    {
        foreach (var shape in shapes)
        {
            Console.WriteLine($"形状的面积为: {shape.Area()}");
        }
    }

    public static void Main()
    {
        var circle = new Circle() { Radius = 5 };
        var square = new Square() { Side = 10 };

        Shape[] shapes = { circle, square };
        DisplayArea(shapes); // 输出不同形状的具体面积
    }
}

此例中,CircleSquare 都是从抽象基类 Shape 派生出来的,它们都实现了 Area 抽象方法。在 DisplayArea 函数中,通过 Shape 类型的数组可以容纳不同类型的形状对象,这是多态性的体现,即同一接口(Area 方法)下不同的实现。

实例4(接口实现多态):

public interface IRunnable
{
    void Run();
}

public class Car : IRunnable
{
    public void Run()
    {
        Console.WriteLine("汽车正在行驶...");
    }
}

public class Airplane : IRunnable
{
    public void Run()
    {
        Console.WriteLine("飞机正在飞行...");
    }
}

public static class Program
{
    public static void MakeRun(IRunnable vehicle)
    {
        vehicle.Run();
    }

    public static void Main()
    {
        Car car = new Car();
        Airplane airplane = new Airplane();

        MakeRun(car); // 输出 "汽车正在行驶..."
        MakeRun(airplane); // 输出 "飞机正在飞行..."
    }
}

这里展示了通过接口实现多态的例子。IRunnable 接口定义了一个通用行为 Run,尽管 CarAirplane 的运行方式完全不同,但都可以实现这个接口,从而使得 MakeRun 方法能够处理任何实现了 IRunnable 的对象。

实例5(虚方法与动态绑定):

public class BaseClass
{
    public virtual void ShowMessage()
    {
        Console.WriteLine("这是基础类的消息");
    }
}

public class DerivedClass : BaseClass
{
    public override void ShowMessage()
    {
        Console.WriteLine("这是派生类的消息");
    }
}

public static class Program
{
    public static void DisplayMessage(BaseClass obj)
    {
        obj.ShowMessage();
    }

    public static void Main()
    {
        BaseClass baseObj = new BaseClass();
        DerivedClass derivedObj = new DerivedClass();

        DisplayMessage(baseObj); // 输出 "这是基础类的消息"
        DisplayMessage(derivedObj); // 输出 "这是派生类的消息",尽管传入的是基类引用
    }
}

这个例子展示了动态多态性,即使通过基类类型引用调用虚方法时,也会根据实际的对象类型调用对应的重写方法。这就是多态的一个重要方面,称为运行时多态或动态绑定。

python推荐学习汇总连接:
50个开发必备的Python经典脚本(1-10)

50个开发必备的Python经典脚本(11-20)

50个开发必备的Python经典脚本(21-30)

50个开发必备的Python经典脚本(31-40)

50个开发必备的Python经典脚本(41-50)
————————————————

​最后我们放松一下眼睛
unity C#中的封装、继承和多态简单易懂的经典实例,c#,unity,游戏引擎文章来源地址https://www.toymoban.com/news/detail-836876.html

到了这里,关于unity C#中的封装、继承和多态简单易懂的经典实例的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • python 面向对象编程的特点 - 封装 - 继承(经典类、新式类) - 多态 - 静态方法、类方法 - 下划线的使用 - 回合制攻击游戏实验

    python 面向对象编程的特点 - 封装 - 继承(经典类、新式类) - 多态 - 静态方法、类方法 - 下划线的使用 - 回合制攻击游戏实验

    目录 面向对象编程的特点: 封装:封装是将数据和操作(方法)封装在一个对象中的能力 继承:继承是指一个类(子类)可以继承另一个类(父类)的属性和方法。 我们为什么需要继承呢? 父类/基类 = ATM 子类/派生类= ChinaATM/ICBCATM ATM系统父类子类讲解代码: 经典类和新式

    2024年02月15日
    浏览(13)
  • 封装、继承、多态

    封装是面向对象的特征之一,是对象和类概念的主要特性。 封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。 封装,是把客观对象变成抽象的类的过程,在这个过程中,抽象出具体对象的特征

    2024年02月12日
    浏览(9)
  • Python-继承封装多态

    介绍 与java一样Python是一种支持面向对象编程的高级编程语言,它的核心思想之一就是继承、封装和多态。这三个概念是面向对象编程中最基本、最核心的思想之一,也是Python编程中必须掌握的知识点之一 继承 在面向对象编程中,继承是指一个类(称为子类)从另一个类(称

    2023年04月08日
    浏览(9)
  • Java三大特性:封装、继承、多态

    Java三大特性:封装、继承、多态

    高内聚,低耦合 高内聚:类内部操作自己完成,不允许外部干涉。 低耦合:仅暴露少量的方法给外部使用。 封装(数据的隐藏) 通常应禁止直接访问一个对象中数据的实际表达,而应该通过操作接口来访问,这称为信息的隐藏。 封装的特点 1.提高程序的安全性,保护数据

    2024年03月21日
    浏览(14)
  • Java 封装 继承 多态(深入理解)

    Java 封装 继承 多态(深入理解)

    登神长阶 第二阶 封装 继承 多态 🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀 目录 🍒一.面向对象编程的三大特性 🍍二.封装 🧉1.定义及其作用  🥝2.访问限定符 🫛3.封装扩展 包(package) 🥕3.1.定义及其作用  🥦 3.2.导入包的类 🍔3.3.自定义包 🌯

    2024年03月11日
    浏览(10)
  • python学习之【继承、封装、多态】

    python学习之【继承、封装、多态】

    #来评选你心中的TOP1编程语言# 距离上篇文章 python学习之【类和对象】已有三个星期之久,这篇文章介绍 面向对象的三大特征——封装,继承,多态。 对于编程初学者来说, 学习python应该是比较好入手的 , 文末会给大家介绍下python的一些特点,供需要学习编程语言的伙伴一

    2024年02月12日
    浏览(8)
  • 面向对象(类/继承/封装/多态)详解

    面向对象(类/继承/封装/多态)详解

    面向对象编程(Object-Oriented Programming,OOP)是一种广泛应用于软件开发的编程范式。它基于一系列核心概念,包括类、继承、封装和多态。在这篇详细的解释中,我们将探讨这些概念,并说明它们如何在PHP等编程语言中实现。 类是OOP的基础。它是一种用于创建对象的蓝图或模

    2024年02月08日
    浏览(11)
  • Java系列——封装、继承、多态初了解

    Java系列——封装、继承、多态初了解

    目录 一、前言 二、封装 1.什么是封装?   2.封装的特点 3.封装的使用 三、继承 1.什么是继承? 2.继承的特点 3.继承的优点 4.继承的使用  4.1 继承的格式  4.2 继承的演示 4.3 成员变量 4.4 成员方法 4.5 构造方法 五、多态 1.什么是多态? 2.多态的特点 3.多态的使用  4.引用类型

    2024年02月08日
    浏览(14)
  • 【Java初阶(六)上】封装 继承 多态

    【Java初阶(六)上】封装 继承 多态

    ❣博主主页: 33的博客❣ ▶文章专栏分类: Java从入门到精通◀ 🚚我的代码仓库: 33的代码仓库🚚 对于面向对象程序三大特性:封装、继承、多态。这篇文章将会详细讲解到如何实现封装、继承、多态,以及具体的应用。 本章重点 掌握封装的概念,如何实现封装,包的概念,继

    2024年04月09日
    浏览(14)
  • Java面向对象 - 封装、继承和多态

    目录 第1关:什么是封装,如何使用封装 第2关:什么是继承,怎样使用继承 第3关:super的使用 第4关:方法的重写与重载 第5关:抽象类 第6关:final的理解与使用 第7关:接口 第8关:什么是多态,怎么使用多态 Java_Educoder

    2024年02月07日
    浏览(13)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包