父类与子类间的隐藏与重写
来源:互联网 发布:安顺伟铭网络会所 编辑:程序博客网 时间:2024/06/06 02:50
父类与子类间的隐藏与重写例子(改写一题面试题)
(1)隐藏
当分别位于父类和子类的两个方法完全一样时,调用哪个方法由对象变量的类型决定。
using System; public class A { public A() { Console.WriteLine("A"); } public virtual void Fun() { Console.WriteLine("A.Fun()"); } } public class B : A { public B() { Console.WriteLine("B"); } public new void Fun() { Console.WriteLine("B.Fun()"); } public static void Main() { A a = new A(); //A a.Fun(); //A.Fun(); B b = new B(); //A B 创建子类对象时,先调用父类构造函数,再调用子类构造函数 b.Fun(); //B.Fun(); a = b; a.Fun(); //A.Fun(); (a as B).Fun(); //B.Fun(); (a as A).Fun(); //A.Fun(); Console.ReadKey(); } }(2)重写
将父类方法定义为虚方法,子类重写同名方法后,通过父类变量调用哪个方法由对象变量引用的真实对象决定,而与变量自身所属的类型无关。
using System; public class A { public A() { Console.WriteLine("A"); } public virtual void Fun() { Console.WriteLine("A.Fun()"); } } public class B : A { public B() { Console.WriteLine("B"); } public override void Fun() { Console.WriteLine("B.Fun()"); } public static void Main() { A a = new A(); //A a.Fun(); //A.Fun(); B b = new B(); //A B b.Fun(); //B.Fun(); a = b; a.Fun(); //B.Fun(); (a as B).Fun(); //B.Fun(); (a as A).Fun(); //B.Fun(); Console.ReadKey(); } }
- 父类与子类间的隐藏与重写
- 子类与父类之间的方法重载、隐藏、重写与虚方法调用
- 子类与父类,以及子类的继承,重载与重写。
- Java子类与父类方法的隐藏和覆盖
- 重写与隐藏的区别
- java 子类继承父类 -- 重写、覆盖与多态
- 详细讲解方法重写的注意事项,子类与父类代码的执行顺序
- Java基础重温(六)子类与父类实例方法、静态方法的重写问题
- Java 理解 子类成员变量与父类成员变量同名 方法的重写
- C++中子类与基类的函数隐藏规则
- Java--子类与继承,instanceof运算符,成员变量的的隐藏,方法重写,对象的上转型对象
- public继承后,父类与子类访问隐藏
- public继承后,父类与子类访问隐藏
- 重载、重写与隐藏
- 多态、重写与隐藏
- C#-—体验父类的成员函数在子类的重写和隐藏
- 子类重写和隐藏父类的成员方法(Overriding and Hiding Methods)
- 重写(Override)与隐藏(hide)的区别
- 23种经典设计模式摘要
- cgi
- CRM的过去、现在和未来
- 完全卸载Oracle 10g
- 几种分页方式分析
- 父类与子类间的隐藏与重写
- Windows驱动程序入门
- IE和FireFox样式兼容调试要注意的几点
- ORACLE新建实例打开已有的数据库--数据库与实例的区分测试
- ASP.NET 调用带有返回值的存储过程及获取其返回值
- Symbian IAP的选择以及接入点的隐藏
- C语言经典一百例程序(一)
- Tomcat内存设置方法
- JAVA中的静态方法和非静态方法的继承覆盖问题