多态 向上,向下转型

注意:自始自终都是子类对象在做着类型的变化
向上转型:作用:限制对子类特有方法的访问
父类引用   指向 子类对象   //向上转型 ,但是不能访问子类特有的方法       
Animal    父类                 cat()子类继承与Animal  
Animal  a  =  new  cat();
----------------------------------------------
向下转型:作用:为了访问子类中的特有方法
子类引用   指向 父类(引用)  对象
cat s  =(cat)a;

原文地址:https://www.cnblogs.com/liyunchuan/p/10663812.html

时间: 2024-11-07 16:18:02

多态 向上,向下转型的相关文章

2.25 Java基础总结 ①多态②向上向下转型③instanceof

①多态②向上向下转型③instanceof 一.多态即相同行为,不同实现有两种方法:重载和重写分类:①静态多态:编译时已经确定效果,所用重载实现(不是指static)②动态多态:编译未知,运行已知(使用动态绑定和重写实现) 动态绑定:父类的引用指向子类的对象,执行相应的子类方法,而不是父类的,从而实现多态性 二.向上转型,向下转型向上转型:一个父类的引用可以指向不同的子类对象,或者说一个子类的对象可以被当做一个父类类型低精度向高精度转pet = cat;自动转,子类向父类 向下转型:强制转,有很

Java面向对象之多态(向上向下转型) 入门实例

一.基础概念 多态: 重点是对象的多态性.某一事物的多种体现形态. 多态的作用: 1.提高了代码的扩展性,后期出现的功能,可以被之前的程序所执行. 2.不能使用子类特有的功能.只能使用覆盖父类的功能. 多态的前提: 1.必须要有继承关系或者实现关系. 2.通常对方法进行重写.覆盖. 3.父类或者接口要引用指向子类对象. 多态向上转型: 1.提高程序的扩展性,隐藏了具体子类型 2.只能使用父类中的功能,不能使用子类特有的功能.功能被限定了. 多态向下转型: 1.可以使用子类型的特有功能. 2.必须

Java多态之向下转型

目录 Java多态之向下转型 强制类型转换 instanceof Java多态之向下转型 往期回顾:我们学习了向上转型和动态绑定的概念,可以知道在继承关系中,将一个子类对象赋值给父类的引用变量,调用父类的方法,在实际运行时,就可以根据子类中重写的方法执行不同的操作.其中有一个弊端,就是在向上转型的过程中,其实丢失了一部分子类特有的功能,毕竟它只允许调用父类中的方法.那么,如何在这时调用子类中的方法呢,这时就需要与向上转型相对应的方法,就是所谓的:向下转型. 向上转型是自动就能完成的,向下转型则需

从向上向下转型到----抽象类接口(一)

对象的多态性-向上向下转型 向上转型:子类对象变为父类对象,格式:父类 父类对象 = 子类实例,自动转换; 向下转型:父类对象变为子类对象,格式:子类 子类对象 = (子类) 父类实例,强制转换; 注意:对象的多态性和方法复写是联系在一起的 向上转型: class A{ public void print(){ System.out.println("a") } } class B extends A{ public void print(){ System.out.println(&

Java之路 - 抽象类、接口、多态、向上向下转型

1.抽象类 如果父类当中的方法不确定如何进行{}方法实现,那么这就是一个抽象方法 抽象方法所在的类必须是抽象类 使用方法: (1)不能直接创建new抽象类对象 (2)必须用一个子类来继承抽象父类 (3)子类必须覆盖重写抽象父类当中所有的抽象方法 覆盖重写(实现):去掉抽象方法的abstract关键字,然后补上方法体大括号: (4)创建子类对象进行使用 public abstract class animal { //抽象类 public abstract void eat(); //这是一个抽象

java-多态的向上向下转型

package com.多态; public class Demo1 { /** * @param args * int i=10; * byte j=20; * i=j;//自动类型提升 * j=(byte)i;//自动类型转换 */ public static void main(String[] args) { Animal2 a=new Cat();//父类引用指向子类对象.就是向上转型 System.out.println(a.num);//10,a引用只能看到父类对象属性值 a.ea

java(向上向下转型)

在Java编程中经常碰到类型转换,对象类型转换主要包括向上转型和向下转型. 5.13.1 向上转型 我们在现实中常常这样说:这个人会唱歌.在这里,我们并不关心这个人是黑人还是白人,是成人还是小孩,也就是说我们更倾向于使用抽象概念"人".再例如,麻雀是鸟类的一种(鸟类的子类),而鸟类则是动物中的一种(动物的子类).我们现实中也经常这样说:麻雀是鸟.这两种说法实际上就是所谓的向上转型,通俗地说就是子类转型成父类.这也符合Java提倡的面向抽象编程思想.来看下面的代码: package a.

对象的向上向下转型规则

对象的转型:向上转型:子类-->父类向下转型:父类-->子类 例如: Class B extends AA a;B b;向上转型是自动的:b = new B();a = b; 向下转型要强制转换:a = new B();b = (B)a; 正确 a = new A();b = (B)a; 错误   *并且在向下转型之前要进行向上转型:即通过a=new B();得到的: *否则会报java.lang.ClassCastException: note.A cannot be cast to not

《java入门第一季》之面向对象(多态向下转型)

上一篇博客(http://blog.csdn.net/qq_32059827/article/details/51328638)最后对多态的弊端做了显示,这里解决这个弊端.如下: /* 多态的弊端: 不能使用子类的特有功能. 我就想使用子类的特有功能?行不行? 行. 怎么用呢? A:创建子类对象调用方法即可.(可以,但是很多时候不合理.而且,太占内存了) B:把父类的引用强制转换为子类的引用.(向下转型) 对象间的转型问题: 向上转型: Fu f = new Zi(); 向下转型:(容易出现问题

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

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