1、成员方法的多态性
public class Polymorphism{ public static void main(String[] agrs){ BasePolymorphism b = new SubPolymorphism(); b.method1(); } } class BasePolymorphism{ public BasePolymorphism(){ //注意:此处调用的将是子类的method2方法 this.method2(); } public void method1(){ System.out.println("BasePolymorphism method1"); //注意:此处调用的将是子类的method2方法 this.method2(); //因为父类的method3方法是私有的,在子类中不可见,所以子类无法覆盖该方法。 //即使子类中定义了同名方法,也只能算是重新定义了一个方法,该方法也不具有多态性 //注意:此处调用的是父类的method3方法 this.method3(); } //此方法会被子类的同名方法覆盖 public void method2(){ System.out.println("BasePolymorphism method2"); } private void method3(){ System.out.println("BasePolymorphism method3"); } } class SubPolymorphism extends BasePolymorphism{ //此方法会覆盖父类中的同名方法 public void method2(){ System.out.println("SubPolymorphism method2"); } //虽然该方法与父类中的方法完全相同,但由于父类中的该方法是私有的,所以此处的方法无法覆盖父类中的同名方法 //该方法只是子类新定义的一个方法 public void method3(){ System.out.println("SubPolymorphism method3"); } } /* 运行结果: SubPolymorphism method2 BasePolymorphism method1 SubPolymorphism method2 BasePolymorphism method3 */ /* 分析: 如果子类中的某个方法覆盖父类中的同名方法,那么即使是在父类中调用该同名方法,被调用的方法也是子类中的同名方法、而不是父类中的同名方法。 因此如果要在父类中调用将要被子类重写的方法时,必须格外小心。 父类中的私有方法在子类中是不可见的,所以子类无法覆盖父类中的私有方法。 即使子类定义了和父类的私有方法完全相同的方法,也不会覆盖父类中对应的私有方法,仅仅是在子类中定义了一个新方法。 */
2、成员变量的多态性
与成员方法不同,成员变量不具有多态性。通过引用变量来访问它包含的成员变量时,系统总是试图访问它编译时类型所定义的成员变量,而不是它运行时类型所定义的成员变量。
相关推荐
1、理解多态性的概念。 2、熟练掌握虚函数的作用及其使用方法。 3、掌握静态关联和动态关联的概念和用法。 4、理解纯虚函数和抽象类的概念和用法。 (二)实验内容 1、定义一个类A,在A中有两个私有的整型变量a和b,...
super () 方法始终指向调用类的父类 调用父类构造方法 演示:示例 3 多态性 2-1 多态性是指¡°多种形式¡± 它使用不同的实例而执行不同操作 多态包括方法重写和方法重载 多态性 2-2 方法重载 2-1 方法重载 2-2 ...
Java设计一个银行帐户类,成员变量包括账号、储户姓名、开户时间、身份证号码、存款余额等帐户信息,成员方法包括存款、取款操作。
这三个概念是:封装、继承性和多态性。除此以外,还需了解对象、 类、消息、接口、及抽象等概念。 2.2.1 对象 现实世界中的对象具两个特征:状态和行为。例如:自行车有状态(传动装置、步度、 两个车轮和...
多态性 •Java 引用变量有两个类型:一个是编译时的类型,一个是运行时的类型,编译时的类型由声明该变量时使用的类 型决定,运行时的类型由实际赋给该变量的对象决定。 •如果编译时类型和支行时的...
1.1.3多态性 1.1.4操作概念:OOP程序像什么 1.2为什么C++会成功 1.2.1较好的C 1.2.2采用渐进的学习方式 1.2.3运行效率 1.2.4系统更容易表达和理解 1.2.5“库”使你事半功倍 1.2.6错误处理 1.2.7大程序设计 1.3方法...
10.6 实例研究:利用多态性的工资单系统 10.7 新类和动态关联 10.8 虚析构函数 10.9 实例研究:继承接口和实现 10.10 多态、虚函数和动态关联 小结 术语 自测练习 自测练习答案 练习 第11章 C++输入/输出流 ...
第8章 类的继承性和多态性 8.1 类的继承 8.2 类的多态 第9章 包、接口和异常 9.1 包 9.2 接口 9.3 异常 第10章 Java系统类库 10.1 Java的类库结构 10.2 语言基础类库 10.3 工具类库 第11章 ...
10.6 实例研究:利用多态性的工资单系统 10.7 新类和动态关联 10.8 虚析构函数 10.9 实例研究:继承接口和实现 10.10 多态、虚函数和动态关联 小结 术语 自测练习 自测练习答案 练习 第11章 C++输入/输出流 ...
实验六 多态性 C++上机实验报告-实验六全文共11页,当前为第1页。 C++上机实验报告-实验六全文共11页,当前为第1页。 实验目的 1.掌握运算符重载的方法 2.学习使用虚函数实现动态多态性 实验要求 1.定义Point类,有...
对 C++ 来说,前面例子中 Date 类的属性就是 day、month 和 year,而你添加了 Get 和 Set 方法。C# 提供了一种更加便捷、简单而又直接的属性访问方式。 所以上面的类应该写成这样: 复制内容到剪贴板 代码: using ...
7.3.2如何使用多态性 7.3.3父子类对象的类型转换 7.4抽象类和接口 7.4.1为什么需要抽象类 7.4.2为什么需要接口 7.5其他内容 7.5.1final关键字 7.5.2Object类 7.6一些工具的使用 7.6.1将字节码打包发布 ...
方法的重载和重写都是实现多态的方式,区别在于前者实现的是编译时的多态性,而后 者实现的是运行时的多态性。 重载发生在一个类中,同名的方法如果有不同的参数列表(参数类型不同、参数个数不 同或者二者都不同)...
清楚如何通过向上转型(引用的隐式转型),方法重写,运行期绑定来实现多态性。 体会多态性如何使系统可扩展和可维护。 理解运行时判定引用对象的类型(instanceof),进行强制转型(即引用的显示转型...
5.7.1 多态性 151 5.7.2 引用变量的强制类型转换 152 5.7.3 instanceof运算符 154 5.8 继承与组合 154 5.8.1 使用继承的注意点 155 5.8.2 利用组合实现复用 156 学生提问:使用组合关系来实现复用时,需要创建...
1.1.3 多态性 2 1.1.4 操作概念:OOP程序像什么 3 1.2 为什么C++会成功 3 1.2.1 较好的C 3 1.2.2 采用渐进的学习方式 4 1.2.3 运行效率 4 1.2.4 系统更容易表达和理解 4 1.2.5 “库”使你事半功倍 4 1.2.6 错误处理 ...
16.11 多态性举例 508 16.12 范例:IShape、CPoint、CCircle 509 16.13 范例:使用多态的支付系统 512 16.14 范例:图形的多态处理 518 16.15 利用接口继承和指派模拟实现继承 522 16.16 Object Browser 527 16.17 ...
4. 多态性: 多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化多态性和包含多态性。多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。 2、String是最基本的...
通过课程设计,加深对《C++面向对象程序设计》课程所学知识的理解,熟练掌握和巩固C++语言的基本知识和语法规范,掌握C++语言的基础知识,理解面向对象系统的封装性、继承性和多态性;熟练使用C语言中的函数、数组、...
1.1.3 多态性 2 1.1.4 操作概念:oop程序像什么 3 1.2 为什么c++会成功 3 1.2.1 较好的c 3 1.2.2 采用渐进的学习方式 4 1.2.3 运行效率 4 1.2.4 系统更容易表达和理解 4 1.2.5 “库”使你事半功倍 4 1.2.6 ...