黑马程序员_学习笔记11—多态
来源:互联网 发布:美国买mac口红多少钱 编辑:程序博客网 时间:2024/06/06 12:41
------- Windows Phone 7手机开发、.Net培训、期待与您交流! -------
多态:是一种抽象的概念,是一个对象可以有多种表现形式!
而对于多态怎么去实现:
1:重载与隐藏基类
2:抽象类与虚方法 俩者的区别是一个需要去实现,一个不需要自己去实现由子类去实例化
3:接口; 接口是一种约定,对象的特征或行为,对于一个集合体共同的属性或方法;它是用来被实现的,可以直接被当做父类调用,而抽象类只能当做基类,需要对象的实例化去重写才能使用!
抽象类:
namespace 抽象类 //定义一个抽象类
{
abstract class 动物
{
public abstract void animal();
}
}
{
abstract class 动物
{
public abstract void animal();
}
}
namespace 抽象类
{
class 马:动物
{
public override void animal()
{
Console.WriteLine("我是马,好多好多马!");
}
}
}
{
class 马:动物
{
public override void animal()
{
Console.WriteLine("我是马,好多好多马!");
}
}
}
namespace 抽象类
{
class 黑马:马
{
public override void animal()
{
Console.WriteLine("我是黑马重写了马"); ;
}
}
}
{
class 黑马:马
{
public override void animal()
{
Console.WriteLine("我是黑马重写了马"); ;
}
}
}
namespace 抽象类
{
class 白马:马
{
public override void animal()
{
Console.WriteLine("我是白马重写了马"); ;
}
}
}
{
class 白马:马
{
public override void animal()
{
Console.WriteLine("我是白马重写了马"); ;
}
}
}
static void Main(string[] args)
{
动物 animals;
animals = new 马();
animals.animal();
animals = new 白马();
animals.animal();
animals = new 黑马();
animals.animal();
Console.ReadKey();
}
{
动物 animals;
animals = new 马();
animals.animal();
animals = new 白马();
animals.animal();
animals = new 黑马();
animals.animal();
Console.ReadKey();
}
接口:
namespace 接口
{
interface Icall
{
void call();
}
{
interface Icall
{
void call();
}
}
namespace 接口
{
interface Irun
{
void run();
}
}
{
interface Irun
{
void run();
}
}
abstract class car:Icall,Irun
{
public abstract void call();
public abstract void run();
}
{
public abstract void call();
public abstract void run();
}
class maxCar:car
{
public override void call()
{
Console.WriteLine("我很大我会跑很霸气!");
}
public override void run()
{
Console.WriteLine("我很大我还可以放歌!");
}
}
{
public override void call()
{
Console.WriteLine("我很大我会跑很霸气!");
}
public override void run()
{
Console.WriteLine("我很大我还可以放歌!");
}
}
namespace 接口
{
class miniCar:Icall
{
public void call()
{
Console.WriteLine("我是一辆迷你小车");
}
}
}
{
class miniCar:Icall
{
public void call()
{
Console.WriteLine("我是一辆迷你小车");
}
}
}
namespace 接口
{
class person:car
{
public override void call()
{
Console.WriteLine("我是一个人.....");
}
public sealed override void run()
{
Console.WriteLine("我是一个人可以唱歌 不能在重写了"); ;
}
}
}
{
class person:car
{
public override void call()
{
Console.WriteLine("我是一个人.....");
}
public sealed override void run()
{
Console.WriteLine("我是一个人可以唱歌 不能在重写了"); ;
}
}
}
namespace 接口
{
class Program
{
static void Main(string[] args)
{
car[] s ={ new maxCar(),
new person(),
};
miniCar ss = new miniCar();
s[0].call();
s[0].run();
s[1].call();
s[1].run();
ss.call();
Console.ReadKey();
}
}
}
{
class Program
{
static void Main(string[] args)
{
car[] s ={ new maxCar(),
new person(),
};
miniCar ss = new miniCar();
s[0].call();
s[0].run();
s[1].call();
s[1].run();
ss.call();
Console.ReadKey();
}
}
}
0 0
- 黑马程序员_学习笔记11—多态
- 黑马程序员_学习笔记_Java基础_多态
- 黑马程序员_基础学习笔记(11)
- 黑马程序员_java基础学习笔记11_反射
- 黑马程序员_学习笔记2——wpf计算器
- 黑马程序员_学习笔记9——字符串
- 黑马程序员_学习笔记——面向对象
- 黑马程序员_学习笔记18_Request
- 黑马程序员_学习笔记19_Response
- 黑马程序员_学习笔记20_Server
- 黑马程序员_泛型学习笔记
- 黑马程序员_正则表达式学习笔记
- [黑马程序员]多线程_学习笔记9
- 黑马程序员_多线程学习笔记
- 黑马程序员_异常处理学习笔记
- 黑马程序员_网络编程学习笔记
- 黑马程序员_学习笔记枚举
- 黑马程序员 _学习笔记 异常处理
- 使用 python Matplotlib 库绘图
- 心累了就歇歇巴
- http://blog.csdn.net/liukehua123/article/details/5482854
- 学徒浅析Android开发:第七讲——数据存储之SQLite
- 将文件从应用程序Bundle复制到Documents目录
- 黑马程序员_学习笔记11—多态
- LeetCode 17. 4Sum
- 关于STL的历史(一) -- 引自Morning主页
- JavaScript权威指南第13章 web浏览器中的javascript
- iPhone5 更新iOS8,卡在“正在验证已更新的iphone软件”
- 《关于字符串的内存地址》纠错
- 窗口和控件闪烁解决方案
- MyEclipse10.7的 at com.genuitec.eclipse.ast.deploy.core.Deployment.<init>错误解决办法。
- 浏览器启动被hao123劫持