多态的运行

 1 public class Duotai {
 2     void eat(){
 3         System.out.println("动物在进食");
 4     }
 5     void roam(){
 6         System.out.println("动物在活动");
 7     }
 8     public static void main(String[] args){
 9         Duotai[] animals = new Duotai[3];
10         animals[0] = new Lions();
11         animals[1] = new Hippo();
12         animals[2] = new Wolf();
13         for(int i = 0;i<animals.length;++i){
14             animals[i].eat();
15             animals[i].roam();
16         }
17     }
18 }
19 class Hippo extends Duotai{
20 }
21 class Wolf extends Duotai{
22 }
23 class Lions extends Duotai{
24 }

时间: 2024-10-10 12:58:30

多态的运行的相关文章

构造器出现多态的运行例子

Son: package com.sxt.parc; public class Son extends Father { public void b() { System.out.println("A"); } public static void main(String[] args) { Father f = new Son(); f.a(); } } Father: package com.sxt.parc; public class Father { public void a

深入浅出OOP(三): 多态和继承(动态绑定/运行时多态)

在前面的文章中,我们介绍了编译期多态.params关键字.实例化.base关键字等.本节我们来关注另外一种多态:运行时多态, 运行时多态也叫迟绑定. 运行时多态或迟绑定.动态绑定 在C#语音中,运行时多态也叫方法重写(overriding),我们可以在子类中overriding基类的同签名函数,使用"virtual & override"关键字即可. C#的New.Override关键字 创建一个console 示例工程,命名为InheritanceAndPolymorphis

day14 多态与抽象

多态:相同的行为,不同的实现. 多态分为:静态多态和动态多态. 静态多态:在编译期即确定方法的实现和效果.--使用重载实现 动态多态:运行后才能确定方法的实现和执行效果.--使用动态绑定和重写实现 动态绑定技术:引用数据类型转换.instanceof关键字 引用数据类型转换:向上转型:父类的引用指向子类的对象. 向下转型:运行起来后,确实是本类引用指向本类对象或者指向子类对象,才能成功. instanceof关键字:用于判断运行时对象的真正类型,判断对象是否是某个类的实例.返回true/fals

转载:C++编译期多态与运行期多态

前言 今日的C++不再是个单纯的“带类的C”语言,它已经发展成为一个多种次语言所组成的语言集合,其中泛型编程与基于它的STL是C++发展中最为出 彩的那部分.在面向对象C++编程中,多态是OO三大特性之一,这种多态称为运行期多态,也称为动态多态:在泛型编程中,多态基于template(模 板)的具现化与函数的重载解析,这种多态在编译期进行,因此称为编译期多态或静态多态.在本文中,我们将了解: 什么是运行期多态 什么是编译期多态 它们的优缺点在哪 回到顶部 运行期多态 运行期多态的设计思想要归结到

java面向对象编程--第九章 多态和抽象

9.1多态 在生物学中,是指一个生物或物种可以有多种不同的形式或阶段: 在OOP中,多态是指一个对象有多种形式的能力. 多态可以说是面向对象编程的精髓所在.java中之所以引入多态的概念,原因之一是它在类的继承问题上和C++不同.单继承保证了继承关系的简单明了,但势必在功能上有很大的限制. 由于子类对象中包含一个完整的父类对象,所以父类变量中定义的方法和属性在子类对象中都能找到,所以允许一个父类变量引用子类对象,但反过来却不行,因为子类的方法和属性可能多于父类. 多态调用时,用父类变量指向子类对

Java基础——封装、继承、多态

Java基础--封装.继承.多态 --小实例快速成长 抽象: 1.目的:将复杂的东西简单化,将繁乱的内容有序化. 2.过程:对相同.相似的东西合而为一,对不同的内容进行归门别类. 3.结果:类.接口. 封装: 1.目的:化零为整,将零散的内容进行归属,进行权限控制. 2.过程:将某对象的属性.方法(功能)统一到其名下,并分别设置.适当的权限进行控制管理. 3.结果:对象,接口. 继承: 1.求大同存小异:在一个系列内,大部分都有的内容,就划归父类:子类将父类的内容继承过来,可以有自身的一些发展和

重新认识java(五) ---- 面向对象之多态(向上转型与向下转型)

多态,大概每个人都知道.但是,又有几个人真的理解什么是多态.多态有哪些细节呢?如果你看到这篇文章的名字,脑海中对多态没有一个清晰的概念,不妨点进来看看,也许会有收获. 什么是多态 简单的理解多态 多态,简而言之就是同一个行为具有多个不同表现形式或形态的能力.比如说,有一杯水,我不知道它是温的.冰的还是烫的,但是我一摸我就知道了.我摸水杯这个动作,对于不同温度的水,就会得到不同的结果.这就是多态. 那么,java中是怎么体现多态呢?我们来直接看代码: public class Water { pu

类、多态、抽象、接口小结

什么是类 类是具有相同的属性和方法的一堆对象的集合. 什么是对象 万物皆对象,日常生活中能看到和摸到的东西都是对象. 对象由属性和行为组成 属性是对象所具有的特征,行为是对象可以做的动作 类和对象的关系 类是对象的描述,对象是类的实例 对象的每个属性被表示为类中的一个成员变量 对象的每个行为成为类中的一个方法 什么是构造函数 构造函数是类中的一个特殊方法,该方法在对象实例化时被调用.构造函数的用途是当对象实例化时,初始化对象中的成员变量. final关键字 1.final 可修饰变量(创建符号常

JavaOO 多态和抽象

多态:相同的行为,不同的实现(重写.重载) 多态: 1.静态多态:编译时,系统就能确定调用的是哪个方法---使用重载实现 2.动态多态:运行中系统才能动态确定方法所指的对象---使用动态绑定和重写实现 动态多态的技术基础: 引用数据类型转换的前提:不是任意引用数据类型都可以进行转换(没办法"指鹿为马"),只有有继 承关系的类才能转换. 1.向上转型技术---自动转换类型---把小类型的对象放到大类型的引用中---没有任何风险,绝对成功 ---子类对象中由于包含了一个完整的父类对象部分,