多态性实际上有两种:

  1.方法的多态性:

    1.1方法重载:相同的方法名,会根据传入的参数的类型和个数不同执行不同的方法

    1.2方法覆写:同一个方法名称,会根据子类的不同实现不同的功能

  2.对象的多态性:指的是发生在类的继承中,子类和父类之间相互转换

    1.1向上转型(自动完成):父类 父类对象 = 子类实例

    2.2向下转型:子类 子类对象 =(父类)父类实例;

由于父类可以有多个子类,而一个子类所拥有的父类个数不会太多,向上转型不会出现编译错误,而向上转型有可能出现编译时候的错误

class A{
public void print(){
System.out.println("A中的方法");
}
}
class B extends A{
public void print(){
System.out.println("B中的方法");
}
}
public class Test{
public static void main(String args[]){
A a =new A();
B b = (B) a;
b.print();
}
}
/*
Exception in thread "main" java.lang.ClassCastException: A cannot be cast to B
at Test.main(Test.java:14)
*/

以上的代码出现了类转换的异常,指的是两个两个没有关系的类对象发生强制的向下转型所带来的异常,

instanceof关键字的使用;该关键字主要是判断某个对象是否是一个类的实例:

对象 instanceof 类//返回的是boolean
class A{
public void print(){
System.out.println("A中的方法");
}
}
class B extends A{
public void print(){
System.out.println("B中的方法");
}
}
public class Test{
public static void main(String args[]){
A a = new B();
if(a instanceof B){
B b = (B)b;
}
b.print();
}
}

注意点:向下转型发生之前,一定要先发生对象的向上转型

  

范例:向上转型实例

class A{
public void print(){
System.out.println("A中的方法");
}
}
class B extends A{
public void print(){
System.out.println("B中的方法");
}
}
public class Test{
public static void main(String args[]){
A a = new B();//向上转型
a.print();//B中的方法
}
}

java中的多态案例的更多相关文章

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

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

  2. 13、java中的多态

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

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

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

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

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

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

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

  6. Java中实现多态的条件是什么

    java中实现多态需要三个条件: 1,需要有继承关系的存在. 2,需要有方法的重写. 3,需要有父类的引用指向子类对象.

  7. 深入理解Java中的多态

    一.什么是多态? 多态指同一个实体同时具有多种形式.它是面向对象程序设计(OOP)的一个重要特征.如果一个语言只支持类而不支持多态,只能说明它是基于对象的,而不是面向对象的. 二.多态是如何实现的? ...

  8. Java 中的多态,一次讲个够之继承关系中的多态

    多态是继封装.继承之后,面向对象的第三大特性. 现实事物经常会体现出多种形态,如学生,学生是人的一种,则一个具体的同学张三既是学生也是人,即出现两种形态. Java作为面向对象的语言,同样可以描述一个 ...

  9. java中的多态总结

    一.多态的概述 ava作为面向对象的语言,同样可以描述一个事物的多种形态.如Student类继承了Person类,一个Student的对象便既是Student,又是Person. Java中多态的代码 ...

随机推荐

  1. c++ --> 你可能不知道的c++

    你可能不知道的c++ 你可能不知道的 C++(一) 你可能不知道的 C++(二)

  2. Algorithm --> 判读是否是子树

    问题 判断一棵树是否是另一棵树的子树,如图 思路 问题分两步: 找值相同的根结点(遍历解决) 判断两结点是否包含(递归:值.左孩子.右孩子分别相同) 树节点定义 struct TreeNode { i ...

  3. selenium +python+windows 环境搭建

    很久不弄selenium了,好怀念,现在搭建下环境 1,先安装pip ,因为装的是python3,所以只要你不是在渣渣网站下载到坏的版本,在scripts目录下都有pip.exe文件 直接在环境变量里 ...

  4. HTTP缓存带来的“bug”--HTTP 协议 Cache-Control

    问题描述 先说背景.网站是用PHP开发的,未用任何框架,代码结构也非常简单.运行于阿里云服务器,并采用其CDN来做分发.根据业务需求,有的页面会判断用户浏览器类型,依此来选择PC或者手机端内容. 在一 ...

  5. CSS速查列表-2-(text)文本

    CSS的Text属性可以改变页面中 1.文本的颜色(color). 2.字符间距(word-spacing ) 属性可以改变字(单词)之间的标准间隔.其默认值 normal 与设置值为 0 是一样的 ...

  6. node.js与比特币(typescript实现)

    BTC中的utxo模型 BTC中引入了许多创新的概念与技术,区块链.PoW共识.RSA加密.萌芽阶段的智能合约等名词是经常被圈内人所提及,诚然这些创新的实现使得BTC变成了一种有可靠性和安全性保证的封 ...

  7. [高级软件工程教学]团队Alpha阶段成绩汇总

    一.作业地址: https://edu.cnblogs.com/campus/fzu/AdvancedSoftwareEngineering/homework/1408 https://edu.cnb ...

  8. beta冲刺总结-咸鱼

    前言:emmmmmmm冲刺总结应该可以吐槽了?我发誓后面几篇冲刺我是很努力用正经语言描述了!!!!! 心得:emmmmm,说真的--到beta冲刺的时候才是真正感受到了组队的存在,基本上隔三差五就约一 ...

  9. 248&258--高级软件工程第三次作业

    0 小组成员 马帅 / 2017202110248 齐爽爽 / 2017282110258 1 项目 GitHub 地址 GitHub:https://github.com/whumashuai/QT ...

  10. Alpha冲刺第十一天

    Alpha冲刺第十一天 站立式会议 项目进展 项目进入尾声,主要测设工作完成过半,项目总结也开始进行. 问题困难 项目的困难现阶段主要是测试过程中存在一些"盲点"很难发现或者发现后 ...