六、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>来学习,请看本系列开篇 第六章 继承与建模高级应用 现在,你应该对实体框架中基本的建模有了一定的了解,本章 ...
随机推荐
- Delphi 的各种错误信息(中英文)
******************************* * 编 译 错 误 信 息 * ******************************* ';' not allowed befo ...
- Android Studio使用远程依赖时下载不了jar包的解决方法
使用AS很大的一个好处就是可以使用在线jar包,只需在引用jar包的时候在版本后加上+,比如: compile 'com.facebook.fresco:fresco:0.1.0+' 这样不用在jar ...
- 2.JQuery AJAX
new ActiveXObject("Microsoft XMLHTTP")是IE中创建XMLHTTPRequest对象的方法.非IE浏览器创建方法是new XmlHttpRequ ...
- 3 D. Least Cost Bracket Sequence
题目大意: 这是一个规则的字符括号序列.一个括号序列是规则的,那么在序列里面插入‘+’ 和 ‘1’ 会得到一个正确的数学表达式. 合法:(())(), (),(()(())) 不合法:)(,((),( ...
- 【转】ConcurrentModificationException异常解决办法 --不错
原文网址:http://blog.sina.com.cn/s/blog_465bcfba01000ds7.html 1月30日java.util.ConcurrentModificationExcep ...
- 图论 BZOJ 3669 [Noi2014]魔法森林
Description 为了得到书法大家的真传,小E同学下定决心去拜访住在魔法森林中的隐士.魔法森林可以被看成一个包含个N节点M条边的无向图,节点标号为1..N,边标号为1..M.初始时小E同学在号节 ...
- 汇编学习笔记(7)call和ret指令
ret和retf CPU执行ret指令时进行以下两步操作: (IP)=((ss)*16+(sp)) (sp)=(sp)+2 这相当于pop IP CPU执行retf指令时进行以下四步操作: (IP)= ...
- PHP实现大文件的上传设置
打开php.ini,首先找到 ;;;;;;;;;;;;;;;; ; File Uploads ; ;;;;;;;;;;;;;;;; 区域,有影响文件上传的以下几个参数: file_uploads = ...
- Java日期相关操作
1.获得日期 在旧版本 JDK 的时代,有不少代码中日期取值利用了 java.util.Date 类,但是由于 Date 类不便于实现国际化,其实从 JDK1.1 开始,就更推荐使用 java.uti ...
- java 基础(匿名内部类)
匿名内部类 特点:不对外公开,进行实现功能,继承类,继承抽象类,实现某个接口的匿名内部类,实现相应的方法 特别注意:匿名内部类,匿名指的是 ,new 关键字右边的那个对象--如继承,或是接口 { ...