C#入门--多态(二)
来源:互联网 发布:ubuntu 双系统 主分区 编辑:程序博客网 时间:2024/06/04 19:11
C#入门--多态(二)
一.简单工厂设计模式(核心:根据用户的输入创建对象赋值给父类
namespace demo{ class Test { static void Main(String [] args) { Console.WriteLine("请输入您需要的笔记本品牌:");string brand = Console.ReadLine();NoteBook nb = GetNoteBook(brand);nb.SayHello();Console.ReadKey(); } //简单工厂的核心:根据用户的输入创建对象赋值给父类 public static NoteBook GetNoteBook(string brand) { NoteBook nb = null; //对品牌多条件定值判断 switch(brand) { case "Lenovo":nb = new Lenovo();break; case "Acer":nb = new Acer();break; case "Dell":nb = new Dell();break; } return nb; } } public abstract class NoteBook { public abstract void SayHello(); } public class Lenovo:NoteBook { public override void SayHello() { Console.WriteLine("Lenovo..."); } } public class Acer:NoteBook { public override void SayHello() { Console.WriteLine("Acer..."); } } public class Dell:NoteBook { public override void SayHello() { Console.WriteLine("Dell..."); } }}
二.值传递和引用传递
(1)值类型:int double char decimal bool enum struct
(2)引用类型:string 数组 自定义类 集合 object 接口
Swap(ref n1.ref n2);//交换两个变量的值public static void Swap(ref int n1,ref int n2){int temp = n1;n1 = n2;n2 = temp;}
三.序列化与反序列化(作用:传输数据)
序列化:将对象转换为二进制。
//指示一个类可以被序列化[Serializable]public class Person{}
四.部分类:同一个命名空间下不可以有两个重复的类。
public partial class Person{private string _name;}public partial class Person{public void Test(){_name = 10;//可以使用_name}}
五.密封类(其他类无法从密封类型派生)
public sealed class Person{}
六.显示实现接口(为了解决方法重名问题)
class Demo01{static void Main(string[] args){IFlyable ifl = new Bird();ifl.Fly();//IFly...flyBird b = new Bird();b.Fly();//Bird...flyConsole.Read();}}public class Bird:IFlyable{//编译器认为Fly()是实现接口的方法public void Fly(){Console.WriteLine("Bird...fly");}void IFlyable.Fly()//显示实现接口(不能加修饰符,默认为private){Console.WriteLine("IFly...fly");}}public interface IFlyable{void Fly();}
阅读全文
0 0
- C#入门--多态(二)
- C# 3.0入门(二)
- C#入门讲解(二)
- C# 特性(Attribute)入门(二)
- C# 特性(Attribute)入门(二)
- C# 特性(Attribute)入门(二)
- C# 特性(Attribute)入门(二)
- C# 3.0入门系列(二)
- C# 3.0入门系列(二)
- C#入门经典 学习笔记(二)
- C#入门作业二
- C#入门作业二补充
- Managed DirectX +C# 开发(入门篇)(二)
- Managed DirectX +C# 开发(入门篇)(二)
- (转)Managed DirectX +C# 开发(入门篇)(二)
- C#轻松入门(二)数据类型与流程控制
- 深入浅出C#2008从入门到提高Step By Step(二)C#基本概念
- C#入门 二十五段经典代码
- bzoj2794 [Poi2012]Cloakroom ( 背包DP+离线 )
- luogu 1057 传球游戏
- 第9章 中断和动态时钟显示
- 例题6-3 矩阵链乘 UVA442
- Android ADB emulator-5554 unauthorized
- C#入门--多态(二)
- noip2006 day1 t1 能量项链
- 0【NOIP2013初赛】整除 1铺砖问题 2【NOIP2012初赛】新壳栈 3【NOIP2013初赛】青蛙
- DeepMind成立DMES新部门,旨在研究AI带来的社会伦理问题
- 在这场人工智能“战争”中,这些国家都在做些什么?
- 谷歌硬件战略缺陷:无法围绕谷歌助手打造硬件体系
- 2016全球教育机器人发展白皮书
- 谷歌花4亿英镑下注AI开始有回报 DeepMind创收了
- 路由器、交换机、集线器