黑马程序员 Class(类),Override(重写),Virtual(虚方法)

来源:互联网 发布:北京四达时代 知乎 编辑:程序博客网 时间:2024/05/16 08:56


---------------------- 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/