六、C# 派生
class Program
{
static void Main(string[] args)
{
Contact contact = new Contact();
PdaItem pda = new PdaItem();
pda = contact;
}
}
public class PdaItem
{
public string Name { set; get; }
public DateTime LastUpdated { set; get; }
}
public class Contact : PdaItem
{
public string Address { set; get; }
public string Phone { set; get; }
}
class Program
{
static void Main(string[] args)
{
PdaItem pda = new PdaItem("name1", DateTime.Now);
Contact contact = new Contact("name2", DateTime.Now.AddDays(), "beijing", "");
pda = contact;
Person person = new Person("PersonName1", "tianjin");
contact = person;
}
}
public class PdaItem
{
public PdaItem()
{
}
public PdaItem(string pName, DateTime pLastUpdated)
{
Name = pName;
LastUpdated = pLastUpdated;
}
public string Name { set; get; }
public DateTime LastUpdated { set; get; }
}
public class Contact : PdaItem
{
public Contact()
{
}
public Contact(string pName, DateTime pLastUpdated, string pAddress, string pPhone)
: base(pName, pLastUpdated)
{
Address = pAddress;
Phone = pPhone;
}
public string Address { set; get; }
public string Phone { set; get; }
}
public class Person
{
public Person(string pName, string pAddress)
{
Name = pName;
Address = pAddress;
}
public string Name { set; get; }
public string Address { set; get; }
/// <summary>
/// 隐式转换
/// </summary>
/// <param name="person"></param>
/// <returns></returns>
public static implicit operator Contact(Person person)
{
Contact c = new Contact();
c.Name = person.Name;
c.Address = person.Address;
c.LastUpdated = DateTime.Today;
c.Phone = "";
return c;
}
}
class Program
{
static void Main(string[] args)
{
Contact p = new Contact("xxm", DateTime.Now, );
Console.WriteLine(p.GetSex());
Console.ReadLine(); }
}
public class PdaItem
{
public PdaItem()
{
}
public PdaItem(string pName, DateTime pLastUpdated)
{
Name = pName;
LastUpdated = pLastUpdated;
}
public string Name { set; get; }
public DateTime LastUpdated { set; get; }
}
public class Person
{
public Person(int pSex)
{
Sex = pSex;
}
public int Sex { set; get; }
public string GetSex()
{
switch (Sex)
{
case :
return "女";
case :
return "男";
default:
return "未定义";
}
} }
public class Contact : PdaItem
{
public Contact()
{
}
public Contact(string pName, DateTime pLastUpdated, int sex)
: base(pName, pLastUpdated)
{
person = new Person(sex);
}
public Person person { set; get; }
public int Sex
{
set { person.Sex = value; }
get { return person.Sex; }
}
public string GetSex()
{
switch (Sex)
{
case :
return Name + "," + "女" + "," + LastUpdated;
case :
return Name + "," + "男" + "," + LastUpdated; ;
default:
return Name + "," + "未定义" + "," + LastUpdated; ;
}
}
}
class Program
{
static void Main(string[] args)
{
PdaItem p = new PdaItem("pname", DateTime.Now.AddDays(-));
Contact c = new Contact("name1", DateTime.Now);
p = c;
p.Name = "name1";
Console.WriteLine(p.Name); }
}
public class PdaItem
{
public PdaItem()
{
}
public PdaItem(string pName, DateTime pLastUpdated)
{
Name = pName;
LastUpdated = pLastUpdated;
}
public virtual string Name { set; get; } public DateTime LastUpdated { set; get; }
} public class Contact : PdaItem
{
public override string Name
{
get
{
return FirtstName;
}
set
{
FirtstName = value + " from Contact";
}
}
public string FirtstName;
public Contact()
{
}
public Contact(string pName, DateTime pLastUpdated)
: base(pName, pLastUpdated)
{ } }
class Program
{
static void Main(string[] args)
{
PdaItem p = new PdaItem("pname", DateTime.Now.AddDays(-));
Contact c = new Contact("name1", DateTime.Now);
p = c;
p.Name = "name1";
Console.WriteLine(p.Name); }
}
public class PdaItem
{
public PdaItem()
{
}
public PdaItem(string pName, DateTime pLastUpdated)
{
Name = pName;
LastUpdated = pLastUpdated;
}
public string Name { set; get; } public DateTime LastUpdated { set; get; }
} public class Contact : PdaItem
{
public new string Name
{
get
{
return FirtstName;
}
set
{
FirtstName = value + " from Contact";
}
}
public string FirtstName;
public Contact()
{
}
public Contact(string pName, DateTime pLastUpdated)
: base(pName, pLastUpdated)
{ } }
class Program
{
static void Main(string[] args)
{
PdaItem p;
Contact c = new Contact("contact name");
p = c;
Console.WriteLine(p.Name +","+ p.GetSummary()); Appointment ap = new Appointment("appointment name");
p = ap;
Console.WriteLine(p.Name + "," + p.GetSummary());
Console.ReadLine(); }
}
public abstract class PdaItem
{
public PdaItem()
{ }
public PdaItem(string pName)
{
Name = pName;
}
public virtual string Name { set; get; }
public abstract string GetSummary();
} public class Contact : PdaItem
{
public new string Name
{
get
{
return FirtstName;
}
set
{
FirtstName = value + " from Contact";
}
}
public string FirtstName;
public Contact()
{
}
public Contact(string pName)
: base(pName)
{ }
public override string GetSummary()
{
return "GetSummary() from Contact";
} }
public class Appointment : PdaItem
{
public new string Name
{
get
{
return FirtstName;
}
set
{
FirtstName = value + " from Appointment";
}
}
public string FirtstName;
public Appointment()
{
}
public Appointment(string pName)
: base(pName)
{ }
public override string GetSummary()
{
return "GetSummary() from Appointment";
} }
六、C# 派生的更多相关文章
- androd输入管理系统机制解析
android的输入管理系统主要完成按键.触摸板.鼠标等输入设备的事件输入,功能包括,输入设备的事件输入及向焦点窗口和焦点视图的事件派发,事件的插入,事件的过滤,事件的拦截等功能. 整个输入系统 ...
- Core官方DI解析(3)-ServiceCallSite.md
上一篇说过在整个DI框架中IServiceProviderEngine是核心,但是如果直接看IServiceProviderEngine派生类其实看不出也没什么东西,因为这个类型其实都是调用的其它对象 ...
- C++进阶笔记
思想原则: 以类为例,类最终要处理的是数据,方法只是过程,最终要改变的是private中的数据成员状态.程序设计也是如此,要的是数据. 一.const的作用 const定义变量:定义了一个不可修改的常 ...
- 【C++ 实验六 继承与派生】
实验内容 1. 某计算机硬件系统,为了实现特定的功能,在某个子模块设计了 ABC 三款芯片用于 数字计算.各个芯片的计算功能如下: A 芯片:计算两位整数的加法(m+n).计算两位整数的减法(m-n) ...
- SQL Server进阶(六)表表达式--派生表、公用表表达式(CTE)、视图和内联表值函数
概述 表表达式是一种命名的查询表达式,代表一个有效地关系表.可以像其他表一样,在数据处理中使用表表达式. SQL Server支持四种类型的表表达式:派生表,公用表表达式,视图和内联表值函数. 为什么 ...
- 第三十六章、PyQt输入部件:QAbstractSpinBox派生类QSpinBox、 QDoubleSpinBox、QDateTimeEdit、QDateEdit和QTimeEdit
专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 一.概述 Designer输入部件中的Spin B ...
- Python之路【第六篇】python基础 之面向对象进阶
一 isinstance(obj,cls)和issubclass(sub,super) isinstance(obj,cls)检查是否obj是否是类 cls 的对象 和 issubclass(su ...
- Python之路【第六篇】python基础 之面向对象(一)
一.三大编程范式 1.面向过程编程 2.函数式编程 3.面向对象编程 二.编程进化论 1.编程最开始就是无组织无结构,从简单控制流中按步写指令 2.从上述的指令中提取重复的代码块或逻辑,组织到一起(比 ...
- 《Entity Framework 6 Recipes》中文翻译系列 (30) ------ 第六章 继承与建模高级应用之多对多关联
翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 第六章 继承与建模高级应用 现在,你应该对实体框架中基本的建模有了一定的了解,本章 ...
随机推荐
- CN消息的来源——父窗口不知道怎么处理,于是把这个消息加上CN_BASE在分发到实际的子窗体
VCL存在一些非API消息以供其内部使用,为什么要这样做呢?这要从WM_COMMAND & WM_NOTIFY消息说起,我们说WM_COMMAND消息并不是直接发给实际产生消息的窗体,而是发送 ...
- build Intent
Intent用于activity之间, fragmetn之间, 或者APP间通信, 主要包含数据和Action两部分: 常见的action是字符串形式的activity指定 Intent intent ...
- zabbix 参数说明
<pre name="code" class="html">数据采集的工作模式可以分为被动模式(服务器端到客户端采集数据) 主动模式(客户端主动上报 ...
- Apache HTTP Server mod_session_dbd 远程安全漏洞(CVE-2013-2249)
漏洞版本: Apache 2.4.2 漏洞描述: BUGTRAQ ID: 61379 CVE(CAN) ID: CVE-2013-2249 Apache HTTP Server是开源HTTP服务器. ...
- HDU 1151 Air Raid(最小路径覆盖)
题目大意: 有n个城市,m条道路,城市的道路是单向. 现在我们的伞兵要降落在城市里,然后我门的伞兵要搜索所有道路.问我们最少占领多少个城市就可以搜索所有的道路了. 我们可以沿着道路向前走到达另一个城 ...
- First Bad Version——LeetCode
You are a product manager and currently leading a team to develop a new product. Unfortunately, the ...
- 【转】 Linux/Unix 进程间通信的各种方式及其比较
http://blog.csdn.net/guopengzhang/article/details/5528260 进程间通信就是在不同进程之间传播或交换信息,那么不同进程之间存在着什么双方都可以访问 ...
- Android通过类对象的方式实现JSON数据的解析
1.通过主Activity的Button按钮实现数据的解析 public class MainActivity extends Activity { //定义一个包含Json格式的字符对象 priva ...
- I - Arbitrage
题目大意:套汇 套利是使用货币汇率的差异将一个单位的货币转换为多个相同的货币单位,例如1美元可以买0.5英镑,1英镑可以买10法郎,1法郎可以买0.21美元,然后聪明的人经过一些列兑换可以得到 1*0 ...
- poj1038
题目大意:网络导航? 标准的web浏览器包含向前和向后浏览最近的页面的特性,有一个方法来实现这些用两个栈来跟踪页面达到向前和向后的移动,在这个问题里面,你被要求实现这些. 以下命令需要支持: BACK ...