首页
学习
活动
专区
工具
TVP
发布

java转型和下转型对象多态性)

/*上转型和下转型对象多态性) *上转型:是子类对象由父类引用,格式:parent p=new son *也就是说,想要上转型的前提必须是有继承关系的两个类。...*在调用方法的时候,上转型对象只能调用父类中有的方法,如果调用子类的方法则会报错 *下转型:是父类向下强制转换到子类对象 *前提是该父类对象必须是经过上转型对象。...p.dance();这里会报错,因为父类中没有dance()方法 19 20 //对进行过上转型对象,进行强制下转型 21 Son s=(Son)p;...static void show(Parent p){ 28 //现将父类中有的方法输出 29 p.grow(); 30 //对进行过上转型对象进行类型判断...,然后进行相应的强制下转型 31 if(p instanceof Son){ 32 //判断是哪个类的上转型对象,然后进行下转型 33

2.1K10

Java对象多态

封装、继承和多态 封装、继承和多态是面向对象编程的三大特性。...# 5.3 多态 多态是同一个行为具有多个不同表现形式或形态的能力。也就是同样的方法,由于实现类不同,执行的结果也不同!...基本类型包装类 Java 并不是纯面向对象的语言,虽然 Java 语言是一个面向对象的语言,但是 Java 中的基本数据类型却不是面向对象的。...我们的基本类型,如果想通过对象的形式去使用他们,Java 提供的基本类型包装类,使得 Java 能够更好的体现面向对象的思想,同时也使得基本类型能够支持对象操作!...# 9.1 对象设计(面向对象多态运用) 设计一个 Person 抽象类,包含吃饭运动学习三种行为,分为工人、学生、老师三种职业。 设计设计一个接口 考试 ,只有老师和学生会考试。

23550
您找到你想要的搜索结果了吗?
是的
没有找到

Java面向对象多态

多态概述Java 多态是指同一种类型的对象,在不同的情况下有着不同的状态和行为。它是基于继承、重写和向上转型等特性实现的,多态是面向对象编程的三大特征之一,其他两个分别是封装和继承。...Java 多态包括以下三种方式方法重写(Override)子类可以对从父类继承的方法进行重写,以便根据子类的需要来覆盖掉父类中的方法实现。这样在调用时,可以根据对象的不同来执行对应的方法。...animal = new Animal(); Animal cat = new Cat(); animal.move(); cat.move(); }}向上转型...new Cat(); animal.move(); // 调用子类中的方法 //animal.catchMouse(); // 编译错误,不能访问子类独有的方法 }}实现多态通过父类引用指向子类对象...,可以实现多态性,使得同一个方法调用可以在不同的对象上具有不同的行为。

12721

Java面向对象多态

代码中如何体现: 要有继承, 要有方法重写, 父类引用指向子类对象 多态的成员访问特点 成员变量:编译看左边(父类), 运行看左边 成员方法:编译看左边,运行看右边(子类)对象(注意:这就是多态的精华)...: 提高代码的扩展性; 如何使用多态?...写一个或多个子类, 重写父类的方法 3.写一个使用类,在使用类中写一个方法,方法的参数类型定义为父类类型. 4.调用使用类的方法,传入不同的子类对象 多态的弊端: 不能调用子类特有功能....如何解决: 向下转型(强制转换): 向上转型和向下转型 向上转型: 1. Animal a = new Cat(); 2....Cat c = new Cat(); Animal a2 = c; 向下转型(强制转换): Cat c2 = (Cat)a; 注意:java.lang.ClassCastException,异常经常在向下转型中出现

14520

Java对象多态

多态是面向对象的最后一个主要特征,它本身主要分为两个方面: · 方法的多态性:重载与覆写 |- 重载:同一个方法名称,根据不同的参数类型及个数可以完成不同的功能; |- 覆写:同一个方法,根据操作的子类不同...· 对象多态性:父子类对象的转换。...|- 向上转型:子类对象变为父类对象,格式:父类 父类对象 = 子类实例,自动; |- 向下转型:父类对象变为子类对象,格式:子类 子类对象 = (子类) 父类实例,强制; class A{...b.fun1() ; // 调用覆写父类中的fun1()方法 } public static void fun(C c){ c.fun1() ; // 调用覆写父类中的fun1()方法 } }; 多态...,子类自动向上转型父类 class A{ // 定义类A public void fun1(){ // 定义fun1()方法 System.out.println("A --> public

42000

Java-面向对象(多态)

4.7、多态 前提 多态的前提: 子父类继承关系 方法的重写 父类引用指向子类对象 动态绑定:运行期间调用的方法,是根据具体的类型,具体的方法 优缺点: 优点:可以提高可维护性(多态前提所保证的),提高代码的可扩展性...Cat cat = new Cat(); // cat.eat(); // 父类引用 Animal a // 指向 = // 子类对象...; import java.util.Date; /** * Created by JackFeng on 2020/3/15. */ public class PoymorphicDemo {...我是子类的方法"); } public static void function(){ System.out.println("我是子类的静态方法"); } } 多态转型...多态中的向上转型和向下转型: 引用类型之间的转换 由大到小 由小到大(子类型转换成父类型) 向上转型 向下转型 基本数据类型的转换 由大到小 由小到大 byte short char -- int -

45730

Java Review (十一、面向对象----多态)

多态Java 引用变量有两个类型 :一个是编译时类型,一个是运行时类型,编译时类型由声明该变量时使用的类型决定,运行时类型由实际赋给该变量的对象决定,如果编译时类型和运行时类型不一致,就可能出现所谓的多态...,被称为向上转型( upcasting ),这种转型总是可以成功的,这也从另一个侧面证实了子类是一种特殊的父类 。...这种转型只是表明这个引用变量的编译时类型是父类,但实际执行它的方法时,依然表现出子类对象的行为方式。...重写 接口 抽象类和抽象方法 ---- 参考: 【1】:《疯狂Java讲义》 【2】:https://www.runoob.com/java/java-polymorphism.html 【3】...:《Java核心技术 卷一》

44120

JavaSE(五)JAVA对象向上转型和向下转型

对象转型问题其实并不复杂,我们记住一句话:“父类引用指向子类对象”。 java对象转型分为向上转型和向下转型 一、对象的向上转型   1.1、定义 子类引用的对象转换为父类类型称为向上转型。...不然的话,     如果dosleep以子类对象为参数,则有多少个子类就需要写多少个函数。这也体现了JAVA的抽象编程思想。...(Girl.java:36)   所以向下转型过程中要注意的是:      情况一:如果父类引用的对象如果引用的是指向的子类对象,那么在向下转型的过程中是安全的。...情况二:如果父类引用的对象是父类本身,那么在向下转型的过程中是不安全的,编译不会出错,但是运行时会出现java.lang.ClassCastException错误。...体现了JAVA的抽象编程思想。

1K60

面向对象——多态

1.什么是多态 一个对象有多种表示形态 一个是表示自己的类型,还有表示自己父类的类型 Dog dog1 = new Dog(); Animal dog2 =new Dog(); //Dog对象也可以赋值给父类型变量来表示...2.多态的特点 子类对象赋值给父类类型运行时,表现的是子类特征 ?...注意: 1.多态形式的特点展现是对重写方法,因为在编译时是找当前变量类是否有这个方法。上图Animal类型的变量去调用eat(),如果Animal中没有eat()编译不会通过会报错。...编译通过之后,运行时就直接先在对象本身类Dog中去找找不到再到父类 2.字段没有多态形式,变量是什么类型就找到那个类的字段 3.静态也没有因为在还没有开始执行就加载到了方法区...,直接就是变量的类来调用 3.多态的好处 继承,方法的重写加上多态的表达使代码的扩展性大大提高。

30820

面向对象多态

一、面向对象三大特性 封装 将属性和方法书写到类的里面的操作即为封装 封装可以为属性和方法添加私有权限 继承 子类默认继承父类的所有属性和方法 子类可以重写父类属性和方法 多态 传入不同的对象,产生不同的结果...二、多态 2.1 了解多态 多态指的是一类事物有多种形态,(一个抽象类有多个子类,因而多态的概念依赖于继承)。...定义:多态是一种使用对象的方式,子类重写父类方法,调用不同子类对象的相同父类方法,可以产生不同的执行结果 好处:调用灵活,有了多态,更容易编写出通用的代码,做出通用的编程,以适应需求的不断变化!...实现步骤: 定义父类,并提供公共方法 定义子类,并重写父类方法 传递子类对象给调用者,可以看到不同子类执行效果不同 2.2 体验多态 class Dog(object): def work(self...wangcai = Dog() # 静态方法既可以使用对象访问又可以使用类访问 wangcai.info_print() Dog.info_print() 五、总结 面向对象三大特性 封装 继承 多态

15120

Java面向对象基础(封装继承多态)【3】

面向对象的精髓,是对对象的抽象,最能体现这一点的就是接口。为什么我们讨论设计模式都只针对具备了抽象能力的语言(比如C++、Java、C#等),就是因为设计模式所研究的,实际上就是如何合理的去抽象。...String位于java.lang包中,Java程序默认导入java.lang包下的所有类。 3....· 属性用于定义该类或该类对象包含的数据或者说静态属性。属性作用范围是整个类体。Java使用默认的值对其初始化。 · 方法则用于定义该类或该类实例的行为特征和功能实现。方法是类和对象行为特征的抽象。...3. finalize方法,是Java提供给程序员用来释放对象或资源的方法,但是尽量少用。 · 方法的重载是指一个类中可以定义有相同的名字,但参数不同的多个方法。...· super关键字的作用 1. super是直接父类对象的引用。可以通过super来访问父类中被子类覆盖的方法或属性。 · 面向对象的三大特征:继承、封装、多态

68220

Java面向对象基础(封装继承多态)【2】

Java中4种“访问控制符”分别为private、default、protected、public,它们说明了面向对象的封装性,所以我们要利用它们尽可能的让访问权限降到最低,从而提高安全性。...(polymorphism) 多态指的是同一个方法调用,由于对象不同可能会有不同的行为。...多态的要点: 1. 多态是方法的多态,不是属性的多态(多态与属性无关)。 2. 多态的存在要有3个必要条件:继承,方法重写,父类引用指向子类对象。 3....父类引用指向子类对象后,用该父类引用调用子类重写的方法,此时多态就出现了。...; } } 对象转型(casting) 父类引用指向子类对象,我们称这个过程为向上转型,属于自动类型转换。 向上转型后的父类引用变量只能调用它编译类型的方法,不能调用它运行时类型的方法。

39230

Java面向对象编程三大特征 - 多态

Java面向对象编程三大特征 - 多态 本文关键字:Java、面向对象、三大特征、多态 多态是面向对象编程的三大特征之一,是面向对象思想的终极体现之一。...在理解多态之前需要先掌握继承、重写、父类引用指向子类对象的相关概念。...也就是是否会有某种需求,让Java语言为开发者提供这样一种用法?...什么是多态 多态指的是同一个父类,或同一个接口,发出了一个相同的指令(调用了同一个方法),由于具体执行的实例(子类对象或实现类对象)不同,而有不同的表现形态(执行效果)。...多态的必要条件 存在子父类继承关系 子类重写父类的方法 父类引用指向子类对象 只有满足了这三个条件才能构成多态,这也就是文章前三点用这么长的篇幅来铺垫的原因。 3.

58241

浅析Java多态_JAVA多态

Java多态 今天来谈谈Java中的多态,作为面向对象的一大特性,它的重要性不必多说,相比其他两特性(继承、封装)从字面上看就有点不易读懂,多种态度还是有多变态?...简单理解就是同一方法在不同类中有不同实现(继承关系上),再或者就是父类的引用指向子类对象; 在这里我附上官方的图解: 如图所示:一台打印机,都有着打印的功能,但是不同的打印机在不同的场景或者不同的需求上...存在的必要条件 继承或实现 重写 父类引用指向子类对象:如:Parent p = new Child(); 以上三个必要条件需同时满足,当使用多态的方式去调用方法时,首先必须检查父类中是否有该方法...= new Dau(); dad.method(); } } 输出结果: 我是儿子 我是女儿 引用数据类型的转型 引用数据类型的转型分为两种:向上转型和向下转型; 向上转型是指把子类引用类型自动转换为父类引用类型...上述的代码就是向上转型,实现了多态; class test { //向下转型,调用Son的方法 public static void main(String[] args) { Dad dad

57640

Java 基础篇】Java多态:发挥对象的多重形态

导言 多态是面向对象编程中的一个重要概念,它允许一个对象表现出多种形态。在Java中,多态性通过继承和方法重写实现,它使得代码更加灵活、可扩展和可维护。...本篇博客将围绕Java多态展开讨论,包括多态的概念、实现方式、用法以及多态带来的优势。 一、多态的概念 多态是指一个对象在不同情况下可以表现出不同的行为。...静态方法和私有方法不能被重写,因此不具备多态性。 总结 多态Java面向对象编程的重要概念之一,它通过继承和方法重写实现,使得对象可以表现出多种形态,增加了代码的灵活性和可扩展性。...在设计和实现Java程序时,合理利用多态性可以提高代码的复用性、可维护性和可扩展性。 本篇博客围绕Java多态进行了详细讨论,介绍了多态的概念、实现方式和用法,并提供了示例代码进行演示。...同时,也提醒了在使用多态性时需要注意的事项。希望通过本篇博客的阅读,读者对Java多态有了更深入的了解,并能够灵活运用多态性来构建高质量的Java应用程序。

17730
领券