1.多态分为引用多态和方法多态,见测试类

    package com.wangcf;
//父类
public class Animal {
public void eat(){
System.out.println("父类的方法");
}
}
package com.wangcf;
//子类
public class Bridge extends Animal{ public void eat(){
System.out.println("子类鸟重写的方法");
} public void fly(){
System.out.println("子类鸟独有的可以飞的方法父类中没有");
}
}
package com.wangcf;
//子类
public class Tiger extends Animal{ }
package com.wangcf;
//测试类
public class Test {
public static void main(String[] args) {
//1.引用多态
Animal obj1=new Animal(); //父类的引用可以指向本类的对象
Animal obj2=new Bridge(); //父类的引用可以指向子类的对象
Animal obj3=new Tiger();
Tiger obj4=new Tiger();
//Bridg obj3=new Animal(); 子类引用不可以指向父类 //2.方法多态 优先使用子类的方法,若子类没有重写,则使用父类的方法;父类引用不可以调用子类独有的方法
obj1.eat(); //创建父类的本类对象,调用方法时,调用的是本类的方法
obj2.eat(); //若父类指向子类对象,调用方法为子类的重写方法
obj3.eat(); //或者继承方法
obj4.eat(); //若创建子类的本类对象,没有重写父类的方法,则会调用父类的方法
//obj2.fly(); 不能通过父类的引用调用子类独有的方法 }
}

 2.引用类型的转换

(1)向上转型,小类型转换为大类型,它是隐式的,自动的,不存在隐患

(2)向下转型,大类型转换为小类型,它是强制转换,存在隐患,会参数内存溢出;可以使用instanceof运算符类避免安全性问题

package com.wangcf;
//测试类
public class Test {
public static void main(String[] args) {
Bridge bri=new Bridge();
Animal animal=bri;//向上转型 //Bridge bri2=animal;向下转型,错误需要使用强制转换
Bridge bri1=(Bridge)animal;//强制 //Tiger tig=(Tiger)animal;//虽然编译器没有报错,运行时会错,我们知道animal是Briger转换来的,它不能转换为Tiger
//Tiger tiger=(Tiger)bri; //Cannot cast from Bridge to Tiger
//使用 instanceof 进行判断
if(animal instanceof Tiger){
Tiger tig1=(Tiger)animal;
}else{
System.out.println("无法进行类型转换");
}
}
}

Java中的多态,引用类型的转换的更多相关文章

  1. java中实现多态的机制是什么?

    多态性是面向对象程序设计代码重用的一个重要机制,我们曾不只一次的提到Java多态性.在Java运行时多态性:继承和接口的实现一文中,我们曾详细介绍了Java实现运行时多态性的动态方法调度:今天我们再次 ...

  2. 13、java中的多态

    1,多态的体现 父类的引用指向了自己的子类对象. 父类的引用也可以接收自己的子类对象.2,多态的前提 必须是类与类之间有关系.要么继承,要么实现. 通常还有一个前提:存在覆盖. 3,多态的好处 多态的 ...

  3. 深度分析:理解Java中的多态机制,一篇直接帮你掌握!

    Java中的多态 1 多态是什么 多态(Polymorphism)按字面的意思就是"多种状态".在面向对象语言中,接口的多种不同的实现方式即为多态.用白话来说,就是多个对象调用同一 ...

  4. Java中数据类型及其之间的转换

    Java中数据类型及其之间的转换 基本的数据类型 基本类型有以下四种:1)int长度数据类型有:byte(8bits).short(16bits).int(32bits).long(64bits).2 ...

  5. java中四种引用类型

    java中四种引用类型  今天看代码,里面有一个类java.lang.ref.SoftReference把小弟弄神了,试想一下,接触java已经有3年了哇,连lang包下面的类都不了解,怎么混.后来在 ...

  6. Java中数据类型及其之间的转换(转)

    Java中数据类型及其之间的转换 基本的数据类型 基本类型有以下四种:1)int长度数据类型有:byte(8bits).short(16bits).int(32bits).long(64bits).2 ...

  7. java中四种引用类型(对象的强、软、弱和虚引用)

    对象的强.软.弱和虚引用在JDK 1.2以前的版本中,若一个对象不被任何变量引用,那么程序就无法再使用这个对象.也就是说,只有对象处于可触及(reachable)状态,程序才能使用它.从JDK 1.2 ...

  8. 关于==和equals()方法&Java中string与char如何转换&String,StringBuffer

    1.对于基本数据类型,可以直接使用==和!=进行内容比较 如:int x=30;        int y=30;         x==y;  //true 基本数据类型 简单类型(基本类型) bo ...

  9. Java 中的多态,一次讲个够之接口实现关系中的多态

    上文还没有写完,这一篇继续 Java 中的多态,一次讲个够之继承关系中的多态 https://www.cnblogs.com/qianjinyan/p/10824576.html 接口实现关系,和继承 ...

  10. 通过实例聊聊Java中的多态

    Java中的多态允许父类指针指向子类实例.如:Father obj=new Child();  那么不禁要发问?? 使用这个父类型的指针访问类的属性或方法时,如果父类和子类都有这个名称的属性或方法,哪 ...

随机推荐

  1. C++11 initializer_list 和 Range-based for loop 学习理解

    win10 + vs2017 源码如下: int main() { vector< int > numbers = { 1, 2, 3, 4, 5 }; for (auto num : n ...

  2. 郁金香指标开源库的使用--(tulipindicators-0.8.4)

    瞎逛发现最新出了这么一个指标库,有100多种指标的函数库,文档写的比较好,重要的是作者一直在维护. 把它编成库,然后测试一下,可用于自动交易,策略交易等开发. 1.下载地址 https://githu ...

  3. Angular Elements

    Angular Elements Angular Elements 就是打包成自定义元素的 Angular 组件.所谓自定义元素就是一套与具体框架无关的用于定义新 HTML 元素的 Web 标准. 自 ...

  4. 08-可滚动Widget

    可滚动Widget ViewPort视口 在Flutter中,术语ViewPort(视口),如无特别说明,则是指一个Widget的实际显示区域.例如,一个ListView的显示区域高度是800像素,虽 ...

  5. 在.net core中使用Thrift

    Thrift应用比较广泛,这里不介绍Thrift的基本概念和使用.Thrift对.net支持的很好,但自从.net core诞生引来,我曾多次关注Thrift的官方网站,看看对.net core是否提 ...

  6. 推荐一个学习Flex chart的好网站

    推荐一个学习Flex chart的好网站 2013-03-04 14:16:56|  分类: Flex |  标签: |字号大中小 订阅     推荐一个学习Flex chart的好网站 最近在做一个 ...

  7. 20155211 2016-2017-2 《Java程序设计》第五周学习总结

    20155211 2016-2017-2 <Java程序设计>第五周学习总结 教材学习内容总结 这周学习了第八章和第九章的内容.第八章和第九章主要就是介绍一些类的应用,我先把教材上的内容看 ...

  8. 20155215宣言 2006-2007-2 《Java程序设计》第1周学习总结

    20155215宣言 2006-2007-2 <Java程序设计>第1周学习总结 考核方式 翻转课堂考核12次(5*12=60):每次考试20-30道题目,考试成绩规格化成5分(比如总分2 ...

  9. 20155313 2016-2017-2 《Java程序设计》第一周学习总结

    20155313 2016-2017-2 <Java程序设计>第一周学习总结 教材学习内容总结 本周的Java学习进入了一个全新的阶段,对于我这样的并没有每天花费时间钻研的同学来说,最后几 ...

  10. 20155339 2016-2017-2《Java程序设计》课程总结

    20155339 2016-2017-2<Java程序设计>课程总结 每周作业链接汇总 第一篇随笔:简单的叙述了一下自己对自己的专业以及对师生关系的期望. 平措卓玛的第二次随笔--论技能与 ...