六、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>来学习,请看本系列开篇 第六章 继承与建模高级应用 现在,你应该对实体框架中基本的建模有了一定的了解,本章 ...
随机推荐
- UBUNTU下FPT工具--lftp使用说明
lftp 是UBUNTU下一个功能强大的下载工具,它支持访问文件的协议: ftp, ftps, http, https, hftp, fish.(其中ftps 和https需要在编译的时候包含open ...
- codeforces D. Painting The Wall
http://codeforces.com/problemset/problem/399/D 题意:给出n和m,表示在一个n*n的平面上有n*n个方格,其中有m块已经涂色.现在随机选中一块进行涂色(如 ...
- texedo 分布式事务
1.问题现象 但是实际情况,完全出乎笔者的想法.检查一般对象数据表锁定,只需要检查v$locked_object和v$transaction视图,就可以定位到具体人.但是检查之后的结果如下: SQL& ...
- ext3文件系统,reiserfs,xfs,jsf那种性能好点
ext2 是一个旧的 Linux 档桉系统,没有日志功能. 启用的时间通常需要很久.目前有许多 日志型态 的档桉系统可以以更快的速度及更好的效率完成系统启用和检查. ext3 为 ext2 的日志版, ...
- Pick-up sticks(判断两条线段是否相交)
Time Limit: 3000MS Memory Limit: 65536K Total Submissions: 8351 Accepted: 3068 Description Stan has ...
- code_analyzer(代码分析助手)
软件名: code_analyzer 使用c语言 pcre正则库分析源码文件,包括文件中的头文件.宏定义.函数. 用途: 无聊时,可以用来打发下时间. 演示: 对于本源程序的分析结果如下: ##### ...
- POJ3126 Prime Path(BFS)
题目链接. AC代码如下: #include <iostream> #include <cstdio> #include <cstring> #include &l ...
- 【动态规划】【KMP】HDU 5763 Another Meaning
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5763 题目大意: T组数据,给两个字符串s1,s2(len<=100000),s2可以被解读成 ...
- JavaScript中的加号
JavaScript中的加号“+”可以作为数学运算符的加,也可以作为字符串拼接,也可以作为一元运算符,表示正数. 1+2 "2"+"3" 3+"2&q ...
- oGitHub 注册
GitHub 注册 要想使用 GitHub 第一步当然是注册 GitHub 账号: 1.首先打开 https://github.com/pricing 进行注册. 2.在打开的页面中点击「Sign u ...