C#实现面向对象多态性的三种方式
来源:互联网 发布:淘宝刷単软件用哪个好 编辑:程序博客网 时间:2024/05/30 23:02
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication2
{
//实现面向对象多态性的有三种方式
//虚方法
//抽象类
//接口
//抽象类:是对一系列类的抽象
abstract class Human
{
string name;
public string Name
{
get { return name; }
set { name = value; }
}
//5.属性也可以定义为抽象的,属性本身也是方法
public abstract string num { get; set; }
public void Say()
{
Console.WriteLine("human say...0");
}
//public virtual void Walk()
//{
//}
//2.抽象方法不能有方法体
//3.抽象方法只能写在抽象类里
public abstract void Walk();
public abstract void Work();
}
//4.非抽象类继承抽象类时,抽象类中的所有抽象方法必须实现
class Student:Human
{
string stunum = "";
DateTime dt = DateTime.Now;
public override string num
{
get
{
return stunum;
}
set
{
stunum = value;
}
}
public override void Walk()
{
Console.WriteLine("student walk..");
}
public override void Work()
{
Console.WriteLine("{0}学生在学习",dt);
}
}
class Teacher : Human
{
DateTime dt = DateTime.Now;
public override void Work()
{
Console.WriteLine("{0}老师在教书",dt);
}
string tnum = "";
public override string num
{
get
{
return tnum;
}
set
{
tnum = value;
}
}
public override void Walk()
{
Console.WriteLine("teacher walk`````");
}
}
class Program
{
static void Main(string[] args)
{
//1.抽象类不能直接实例化
Human h = new Student();
h.Walk();
h = new Teacher();
h.Walk();
Human a = new Student();
a.Work();
a = new Teacher();
a.Work();
}
}
}
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication2
{
//实现面向对象多态性的有三种方式
//虚方法
//抽象类
//接口
//抽象类:是对一系列类的抽象
abstract class Human
{
string name;
public string Name
{
get { return name; }
set { name = value; }
}
//5.属性也可以定义为抽象的,属性本身也是方法
public abstract string num { get; set; }
public void Say()
{
Console.WriteLine("human say...0");
}
//public virtual void Walk()
//{
//}
//2.抽象方法不能有方法体
//3.抽象方法只能写在抽象类里
public abstract void Walk();
public abstract void Work();
}
//4.非抽象类继承抽象类时,抽象类中的所有抽象方法必须实现
class Student:Human
{
string stunum = "";
DateTime dt = DateTime.Now;
public override string num
{
get
{
return stunum;
}
set
{
stunum = value;
}
}
public override void Walk()
{
Console.WriteLine("student walk..");
}
public override void Work()
{
Console.WriteLine("{0}学生在学习",dt);
}
}
class Teacher : Human
{
DateTime dt = DateTime.Now;
public override void Work()
{
Console.WriteLine("{0}老师在教书",dt);
}
string tnum = "";
public override string num
{
get
{
return tnum;
}
set
{
tnum = value;
}
}
public override void Walk()
{
Console.WriteLine("teacher walk`````");
}
}
class Program
{
static void Main(string[] args)
{
//1.抽象类不能直接实例化
Human h = new Student();
h.Walk();
h = new Teacher();
h.Walk();
Human a = new Student();
a.Work();
a = new Teacher();
a.Work();
}
}
}
- C#实现面向对象多态性的三种方式
- 面向对象的特征之三多态性
- C语言面向对象的实现---多态性
- 面向对象特征三-多态性
- 面向对象的多态性
- 面向对象的多态性
- 面向对象--对象的多态性
- java 面向对象的多态性
- JAVA面向对象的多态性
- Java面向对象编程——多态性的实现
- 面向对象三大特性之多态性
- JavaScript对象之面向对象的三种继承方式
- c#面向对象系列2(多态性)
- Java面向对象高级--对象的多态性
- Java面向对象--对象的多态性
- C#接口的三种实现方式
- C++ 多态性的实现方式
- Java多态性的实现方式
- nosql篇mongodb初识与安装整理以及与关系型数据库对比
- 5.29尘埃日
- JAVA反射机制
- acm 2039
- 黑马程序员__java 1.5新特性_基础加强学习
- C#实现面向对象多态性的三种方式
- c#学习笔记--数组、枚举、结构、值类型和引用类型
- xp 笔记本 取消 嘟嘟声
- Struts2+JQuery(Ajax) 连接并读取SQLServer数据
- 敏捷软件开发模型--SCRUM
- 无锁队列的实现
- 工厂方法模式(Factory Method)
- C语言预处理命令
- JS 学习5 json