C#抽象类与抽象方法详解

作者:在代码的世界里游走 时间:2022-05-20 18:08:03 

本文实例为大家分享了C#抽象类与抽象方法的具体实现代码,供大家参考,具体内容如下

1.代码


class Program
{
 static void Main(string[] args)
 {
  for (int i = 1; i < 10; i++)
  {
   if (i % 3 == 1)
   {
    StorageDevice storge1 = new Upan("sandisk--" + i.ToString());
    storge1.Inputdevice();
    storge1.WriteDataToDevice();
   }
   else if (i % 3 == 2)
   {
    StorageDevice storge2 = new YingPan("westdata--" + i.ToString());
    storge2.Inputdevice();
    storge2.WriteDataToDevice();
   }
   else if (i % 3 == 0)
   {
    StorageDevice storge3 = new MobliePhone("iphone--" + i.ToString());
    storge3.Inputdevice();
    storge3.WriteDataToDevice();
   }
  }
  Console.ReadKey();
 }
}

abstract class StorageDevice
{
 public abstract void Inputdevice();
 public abstract void WriteDataToDevice();
}

class Upan : StorageDevice
{
 public Upan(string name)
 {
  this.Name = name;
 }

private string Name;
 public override void Inputdevice()
 {
  Console.WriteLine("U pan ({0}) input the computer.....", Name);
 }

public override void WriteDataToDevice()
 {
  Console.WriteLine("U pan ({0}) write data.....", Name);
 }
}

class MobliePhone : StorageDevice
{
 private string Name;
 public MobliePhone(string name)
 {
  this.Name = name;
 }
 public override void Inputdevice()
 {
  Console.WriteLine("Mobile Phone ({0}) input the computer....", Name);
 }
 public override void WriteDataToDevice()
 {
  Console.WriteLine("Mobile Phone ({0}) write data....", Name);
 }
}

class YingPan : StorageDevice
{
 public YingPan(string name)
 {
  this.Name = name;
 }
 public string Name { get; private set; }

public override void Inputdevice()
 {
  Console.WriteLine("Ying pan ({0}) input the computer...", Name);
 }
 public override void WriteDataToDevice()
 {
  Console.WriteLine("Ying pan ({0}) write data...", Name);
 }
}

2. 运行结果:

C#抽象类与抽象方法详解

来源:https://www.cnblogs.com/ChengWenHao/p/ChouXiangLei.html

标签:C#,抽象类,抽象方法
0
投稿

猜你喜欢

  • Java解析XML格式数据的方法详解

    2022-03-25 09:28:25
  • springMVC+ajax实现文件上传且带进度条实例

    2022-01-15 16:42:36
  • static关键字有何魔法?竟让Spring Boot搞出那么多静态内部类(推荐)

    2022-07-03 20:26:29
  • idea 多模块项目依赖父工程class找不到问题的方法

    2022-06-08 10:47:41
  • Java字符串技巧之删除标点或最后字符的方法

    2023-02-06 21:42:50
  • C#端口转发用法详解

    2022-09-05 08:47:08
  • java(jdk)环境变量配置(XP、win7、win8)图文教程详解

    2021-11-01 15:06:48
  • Spring注解之@Lazy注解使用解析

    2023-08-28 23:12:23
  • mybatis-plus分页查询三种方法小结

    2023-11-13 08:44:26
  • 详解Java Synchronized的实现原理

    2023-11-25 06:04:53
  • Spring Security 中如何让上级拥有下级的所有权限(案例分析)

    2022-01-28 16:55:26
  • MyBatis使用动态SQL标签的小陷阱

    2023-09-11 04:42:57
  • Android 使用PDF.js浏览pdf的方法示例

    2021-12-08 06:11:41
  • Java 运算符详情

    2022-02-12 05:54:43
  • springboot 防止重复请求防止重复点击的操作

    2021-09-19 16:03:00
  • java 注解默认值操作

    2023-08-25 20:31:38
  • SpringBoot中的Condition包下常用条件依赖注解案例介绍

    2023-05-29 11:42:17
  • Java中常用的设计模式之装饰器模式详解

    2021-08-28 07:59:15
  • Unity3D 单例模式和静态类的使用详解

    2022-09-22 08:16:19
  • 简单了解redis常见客户端及Sharding机制原理

    2022-03-28 16:49:09
  • asp之家 软件编程 m.aspxhome.com