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. 运行结果:
来源:https://www.cnblogs.com/ChengWenHao/p/ChouXiangLei.html
标签:C#,抽象类,抽象方法
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
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
![](https://img.aspxhome.com/file/2023/9/70269_0s.png)
idea 多模块项目依赖父工程class找不到问题的方法
2022-06-08 10:47:41
![](https://img.aspxhome.com/file/2023/6/84276_0s.jpg)
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
![](https://img.aspxhome.com/file/2023/7/63417_0s.png)
Spring注解之@Lazy注解使用解析
2023-08-28 23:12:23
mybatis-plus分页查询三种方法小结
2023-11-13 08:44:26
![](https://img.aspxhome.com/file/2023/6/63446_0s.png)
详解Java Synchronized的实现原理
2023-11-25 06:04:53
![](https://img.aspxhome.com/file/2023/7/60037_0s.png)
Spring Security 中如何让上级拥有下级的所有权限(案例分析)
2022-01-28 16:55:26
![](https://img.aspxhome.com/file/2023/9/68019_0s.jpg)
MyBatis使用动态SQL标签的小陷阱
2023-09-11 04:42:57
Android 使用PDF.js浏览pdf的方法示例
2021-12-08 06:11:41
![](https://img.aspxhome.com/file/2023/2/89522_0s.png)
Java 运算符详情
2022-02-12 05:54:43
springboot 防止重复请求防止重复点击的操作
2021-09-19 16:03:00
![](https://img.aspxhome.com/file/2023/6/71196_0s.png)
java 注解默认值操作
2023-08-25 20:31:38
SpringBoot中的Condition包下常用条件依赖注解案例介绍
2023-05-29 11:42:17
Java中常用的设计模式之装饰器模式详解
2021-08-28 07:59:15
![](https://img.aspxhome.com/file/2023/0/88180_0s.png)
Unity3D 单例模式和静态类的使用详解
2022-09-22 08:16:19
简单了解redis常见客户端及Sharding机制原理
2022-03-28 16:49:09