首页 > 其他分享 >(大三上_游戏开发设计模式_上课_1)多态练习_计算机

(大三上_游戏开发设计模式_上课_1)多态练习_计算机

时间:2024-08-31 16:24:29浏览次数:6  
标签:double 多态 GetResult System using 设计模式 public 大三

灵活性,可扩展,灵活性,可维护

封装

继承:要有基类

代码片段

写整个属性

        基类里面  基态
            基方向,虚方法

//虚方法,可以写在实例方法里
 

public virtual double GetResult() 
{
    return 0;
}

实例方法,可以创建实例

抽象方法,要写在抽象类里
 

 public abstract double GetResult();

抽象类,不能创建实例

abstract class Prgram

namespace 多态练习_计算机
{
    /// <summary>
    /// 运算类,抽象类
    /// </summary>
    internal abstract class Prgram
    {
      static void Main(string[] args)
        {
            Console.Write("请输入数字A:");
            string strNumberA = Console.ReadLine();

            Console.Write("请选择运算符号(+、-、*、/):");
            string strOperate = Console.ReadLine();

             Console.Write("请输入数字B:");
           string  strNumberB = Console.ReadLine();

            string strResult = "";
            Opration opration=null;//基类的引用
         
           switch (strOperate)
            {
                case "+":
                    //基类的引用指向子类的对象-多态
                    opration = new AddOperation();
                  
                break;
                case "-":
                    //基类的引用指向子类的对象-多态
                   opration = new SubOperation();
                  
                    break;
            }
            //多态结果
            strResult = opration.GetResult().ToString();
        }
    }
}

基类

namespace 多态练习_计算机
{
    /// <summary>
    /// 运算类,抽象类
    /// </summary>
    internal abstract class Opration
    {
        private double _strNumberA;
        private double _strNumberB;


        public double StrNumberA
        {
            get { return _strNumberA; }
            set
            {
                if (value != 0)
                    _strNumberA = value;
                else
                    Console.WriteLine("因子不能为0");
            }
        }
        public double StrNumberB
        {
            get { return _strNumberB; }
            set
            {
                if (value != 0)
                    _strNumberB = value;
            }
        }
        //获取运算结果的方法
        //抽象方法,要写在抽象类里
        public abstract double GetResult();

    }
}

add

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 多态练习_计算机
{
    internal class AddOperation : Opration
    {
        public override double GetResult()
        {
            return StrNumberA + StrNumberB;
        }
    }
}

mul

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 多态练习_计算机
{
    internal class MulOperation:Opration
    {
        public override double GetResult()
        {
            return StrNumberA * StrNumberB;
        }
    }
}

sub

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 多态练习_计算机
{
    internal class SubOperation:Opration
    {
        public override double GetResult()
        {
            return StrNumberA -StrNumberB;
        }
    }
}

div

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 多态练习_计算机
{
    internal class DivOperation: Opration
    {
        public override double GetResult()
        {
            return StrNumberA / StrNumberB;
        }
    }
}

标签:double,多态,GetResult,System,using,设计模式,public,大三
From: https://blog.csdn.net/m0_74289471/article/details/141676573

相关文章

  • 11.多态
    11.多态(Polymorphism)11.1引言使用多态性,可以设计和实现易于扩展的系统,只要新类是程序通常处理的继承层次结构的一部分,就可以添加新类,而无需对程序的常规部分进行修改。程序中唯一必须更改以适应新类的部分是那些需要直接了解添加到层次结构中的新类的部分。例如,如果我们创建......
  • 设计模式 -- 代理模式(Proxy Pattern)
    基本介绍代理模式:为一个对象提供一个替身,以控制对这个对象的访问。即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能。被代理的对象可以是远程对象、创建开销大的对象或需要安全控制的对象代理模式有不......
  • 设计模式 -- 享元模式(Flyweight Pattern)
    1问题引出        小型的外包项目,给客户A做一个产品展示网站,客户A的朋友感觉效果不错,也希望做这样的产品展示网站,但是要求都有些不同:有客户要求以新闻的形式发布有客户人要求以博客的形式发布有客户希望以微信公众号的形式发布直接复制粘贴一份,然后根据......
  • 【Java设计模式】委托模式:掌握高效任务分配
    文章目录【Java设计模式】委托模式:掌握高效任务分配一、概述二、详细解释及实际示例三、Java中委托模式的编程示例四、何时在Java中使用委托模式五、委托模式在Java中的实际应用六、委托模式的优点和权衡七、源码下载【Java设计模式】委托模式:掌握高效任务分配一、......
  • 【Java设计模式】组件模式:使用可复用组件简化复杂系统
    文章目录【Java设计模式】组件模式:使用可复用组件简化复杂系统一、概述二、组件设计模式的别名三、组件设计模式的意图四、组件模式的详细解释及实际示例五、Java中组件模式的编程示例六、何时在Java中使用组件模式七、组件模式在Java中的实际应用八、组件模式的优点和权......
  • C++ 135类和对象_面像对像_多态
    135类和对象_面像对像_多态学习内容 1.抽象类 2.虚函数 3.纯虚函数动态多态满足条件1.有继承关系2.子类重写父类函数3.用父类的函数指针指向子类的对象AnimalBaseModel&animal代码#include<iostream>usingnamespacestd;//cout在这里,没有它会报错#includ......
  • Java设计模式之外观模式详细讲解和案例示范
    1.引言在软件开发过程中,复杂的系统往往包含许多子系统和模块,随着系统功能的增加,模块之间的交互也变得更加复杂。这种复杂性可能会导致系统的可维护性和扩展性降低。外观模式(FacadePattern)是一种结构型设计模式,通过提供一个简化的接口,将复杂的子系统隐藏在幕后,使得外部客......
  • day02-面向对象-多态&抽象类&接口
    一、⭐多态⭐1.1概述1.多态  是在继承/实现情况下的一种现象,表现为对象多态和行为多态​2.⭐对象多态写法:​继承:父类变量=new子类1();​父类变量=new子类2();实现:接口变量=new实现类();​......
  • 设计模式总结(二):结构型模式
    @TOC结构型模式1.代理模式1.1静态代理用户只关心接口功能,而不在乎谁提供了功能。上图中接口是Subject接口真正实现者是上图的RealSubject,但是它不与用户直接接触,而是通过代理。代理就是上图中的Proxy,由于它实现了Subject接口,所以它能够直接与用户接触。用户调用Proxy的时候,Pr......
  • 设计模式--享元模式
    享元模式(FlyweightPattern)是一种结构型设计模式,其主要目的是通过共享对象来有效地支持大量细粒度的对象,从而节省内存和提高性能。它特别适用于需要大量相似对象的情况,这些对象之间共享一些公共状态或数据。享元模式的关键概念享元(Flyweight):享元模式中的对象,这些对象可以共......