黑马程序员 Class(类),Override(重写),Virtual(虚方法)
2012-03-18 15:34
295 查看
---------------------- Windows Phone 7手机开发、.Net培训、期待与您交流! ----------------------
在子类实例化的时候,先找到子类的构造方法(但没有去调用),在转到父类的构造法(调用完后),在转到子类本身调用子类的构造方法
1:父类可以引用子类对象
2:父类引用可以调用子类继承父类的方法属性
2:父类不能调用子类独有的方法属性
3:子类引用不能直接引用父类对象,除非将父类的数据类型强制转换成子类
4:父类可以调用子类重写父类的方法,而不是调用父类原来的方法
子类对象引用父类//在实际编程开发中,很少用到子类引用父类 父类引用子类是常见的~
try
{
Son son1 = (Son)new Father();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
Son son = new Son();
Father father = new Father();
son.Name = "aaa";
father.Name = "bbb";
son = father as Son;//尝试转换
if (son == null)//判断是否转换成功
{
Console.WriteLine("转换失败");
}
方法重写(virtual)
New 关键子是子类隐藏继承父类中的方法
Override是子类重写了父类中的方法
在父类方法中用virtual的方法(虚方法)
在子类的方法中override是将父类中的方法重写,扩展
定义override方法注意事项
Virtual和override不能用再Private方法上
重写的方法必须同名,参数列表一致,返回值类型一致
拥有相同的访问级别
只能重写虚方法
已经用override定义的方法不能在用virtula定义
在子类中不用override定义父类同名方法,编译器会报错,但是可以使用new关键字重新定义该方法
=====王长森 请多多指教
---------------------- Windows Phone 7手机开发、.Net培训、期待与您交流! ---------------------- 详细请查看:http://net.itheima.com/
在子类实例化的时候,先找到子类的构造方法(但没有去调用),在转到父类的构造法(调用完后),在转到子类本身调用子类的构造方法
1:父类可以引用子类对象
2:父类引用可以调用子类继承父类的方法属性
2:父类不能调用子类独有的方法属性
3:子类引用不能直接引用父类对象,除非将父类的数据类型强制转换成子类
4:父类可以调用子类重写父类的方法,而不是调用父类原来的方法
子类对象引用父类//在实际编程开发中,很少用到子类引用父类 父类引用子类是常见的~
try
{
Son son1 = (Son)new Father();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
Son son = new Son();
Father father = new Father();
son.Name = "aaa";
father.Name = "bbb";
son = father as Son;//尝试转换
if (son == null)//判断是否转换成功
{
Console.WriteLine("转换失败");
}
方法重写(virtual)
New 关键子是子类隐藏继承父类中的方法
Override是子类重写了父类中的方法
在父类方法中用virtual的方法(虚方法)
在子类的方法中override是将父类中的方法重写,扩展
定义override方法注意事项
Virtual和override不能用再Private方法上
重写的方法必须同名,参数列表一致,返回值类型一致
拥有相同的访问级别
只能重写虚方法
已经用override定义的方法不能在用virtula定义
在子类中不用override定义父类同名方法,编译器会报错,但是可以使用new关键字重新定义该方法
=====王长森 请多多指教
---------------------- Windows Phone 7手机开发、.Net培训、期待与您交流! ---------------------- 详细请查看:http://net.itheima.com/
相关文章推荐
- C#中子类重写父类方法的几种情况(virtual,abstract,override,new)
- C#关于虚方法和重写的实例说明(virtual 和override)
- 接口,抽象类,虚方法,重写(interface,abstract class,virtual function,override)
- #197 – Override Application Class Methods for Standard Events(为Application类的标准事件重写方法)
- 关于override 与new 重写父类虚方法的一些看法(new与virtual共存)
- 【KK学习笔记】c# 虚方法 virtual 、 重写方法 override 、new 的使用与理解
- C#调用父类构造方法(:base())与重写父类方法(virtual/override)
- C#基础:多态:基类可以定义并实现虚(virtual)方法,派生类可以重写(override)这些方法
- 黑马程序员——Java学习笔记--方法的重载(Overload)与重写(Override)
- C#关于虚方法 virtual 和 override 重写 详解
- 接口,抽象类,虚方法,重写(interface,abstract class,virtual function,override)
- override 与new 重写父类虚方法 (new与virtual共存)
- 黑马程序员——虚函数virtual与重写override实现多态
- c++子类重写父类方法(Override)
- 重写方法声明Override
- override重写 object类的ToString()方法。
- 黑马程序员====重载(overload)和重写(override)====
- 黑马程序员--构造方法重写和desception方法重写
- @Override与方法的重写
- C#方法重载(overload)方法重写(override)隐藏(new)