广告
返回顶部
首页 > 资讯 > 后端开发 > JAVA >Java基础:多态的理解与应用
  • 181
分享到

Java基础:多态的理解与应用

java教程Java 2019-02-14 12:02:22 181人浏览 猪猪侠
摘要

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

多态概述

多态是继封装、继承之后,面向对象的第三大特性。

2.多态现实意义理解:

现实事物经常会体现出多种形态,如学生,学生是人的一种,则一个具体的同学张三既是学生也是人,即出现两种形态。

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

多态体现为父类引用变量可以指向子类对象。

前提条件:必须有子父类关系。

注意:在使用多态后的父类引用变量调用方法时,会调用子类重写后的方法。

多态的定义与使用格式

定义格式:父类类型 变量名=new 子类类型();

多态中成员的特点

多态成员变量:编译运行看左边

Fu f=new Zi();

System.out.println(f.num);//f是Fu中的值,只能取到父中的值

多态成员方法:编译看左边,运行看右边

Fu f1=new Zi();

System.out.println(f1.show());//f1的门面类型是Fu,但实际类型是Zi,所以调用的是重写后的方法。

instanceof关键字

作用:用来判断某个对象是否属于某种数据类型。

注意: 返回类型为布尔类型

使用案例:

Fu f1=new Zi();
Fu f2=new Son();
if(f1 instanceof Zi){
    System.out.println("f1是Zi的类型");
}
else{
    System.out.println("f1是Son的类型");
}

多态的转型

多态的转型分为向上转型和向下转型两种

向上转型:多态本身就是向上转型过的过程

使用格式:父类类型 变量名=new 子类类型();

适用场景:当不需要面对子类类型时,通过提高扩展性,或者使用父类的功能就能完成相应的操作。

向下转型:一个已经向上转型的子类对象可以使用强制类型转换的格式,将父类引用类型转为子类引用各类型

使用格式:子类类型 变量名=(子类类型) 父类类型的变量;

适用场景:当要使用子类特有功能时。

多态案例:

例1:

package day0524;
 
public class demo04 {
    public static void main(String[] args) {
        People p=new Stu();
        p.eat();
        //调用特有的方法
        Stu s=(Stu)p;
        s.study();
        //((Stu) p).study();
    }
}
class People{
    public void eat(){
        System.out.println("吃饭");
    }
}
class Stu extends People{
    @Override
    public void eat(){
        System.out.println("吃水煮肉片");
    }
    public void study(){
        System.out.println("好好学习");
    }
}
class Teachers extends People{
    @Override
    public void eat(){
        System.out.println("吃樱桃");
    }
    public void teach(){
        System.out.println("认真授课");
    }
}

例2:

请问题目运行结果是什么?

package day0524;
public class demo1 {
    public static void main(String[] args) {
        A a=new A();
        a.show();
        B b=new B();
        b.show();
    }
}
class A{
    public void show(){
        show2();
    }
    public void show2(){
        System.out.println("A");
    }
}
class B extends A{
    public void show2(){
        System.out.println("B");
    }
}
class C extends B{
    public void show(){
        super.show();
    }
    public void show2(){
        System.out.println("C");
    }
}

--结束END--

本文标题: Java基础:多态的理解与应用

本文链接: https://www.lsjlt.com/news/2863.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java基础:多态的理解与应用
    多态概述多态是继封装、继承之后,面向对象的第三大特性。2.多态现实意义理解:现实事物经常会体现出多种形态,如学生,学生是人的一种,则一个具体的同学张三既是学生也是人,即出现两种形态。Java作为面向对象的语言,同样可以描述一个事物的多种形态...
    99+
    2019-02-14
    java教程 Java
  • 【JAVA零基础入门系列】Day13 Java类的继承与多态
    继承是类的一个很重要的特性,什么?你连继承都不知道?你是想气死爸爸好继承爸爸的遗产吗?(滑稽)  开个玩笑,这里的继承跟我们现实生活的中继承还是有很大区别的,一个类可以继承另一个类,继承的内容包括属性跟方法,被继承的类被称为父类或者基类,继...
    99+
    2023-06-03
  • Java基础之动态代理Cglib详解
    目录一、前言二、服务三、代理工厂四、结果一、前言 经测试,jdk创建对象的速度远大于cglib,这是由于cglib创建对象时需要操作字节码。cglib执行速度略大于jdk,所以比较适...
    99+
    2022-11-12
  • 一篇文章带你了解Java基础-多态
    目录Java基础知识(多态)多态多态的定义和存在的必要条件多态的案例多态的弊端引用类型转换总结Java基础知识(多态) 多态 多态就是指程序中定义的引用变量所指向的具体类型和通过该...
    99+
    2022-11-12
  • java基础之多态的示例分析
    小编给大家分享一下java基础之多态的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1、多态性多态性是面向对象的最后一个特征,它本身主要分为两个方面: 方...
    99+
    2023-06-20
  • python 类的基础详解与应用
    目录类的定义类对象变量类变量局部变量实例变量私有变量类的方法特殊方法继承单继承多继承类的定义 # class是定义类的关键字,ClassName为类的名称 class Class...
    99+
    2022-11-12
  • Java基础之Stream流原理与用法详解
    目录一、接口设计二、创建操作三、中间操作四、最终操作五、Collect收集Stream简化元素计算 一、接口设计 从Java1.8开始提出了Stream流的概念,侧重对于源数据计算能...
    99+
    2022-11-13
    Java Stream流 原理 Java Stream流 用法 Java Stream流
  • JavaWebServletContext基础与应用详细讲解
    目录ServletContext 基础知识获取 ServletContext对象特性context-param获取文件路径记录日志参数增删改查ServletContext 基础知识 ...
    99+
    2023-01-05
    JavaWeb ServletContext JavaWeb ServletContext应用
  • java理论基础Stream管道流状态与并行操作
    目录一、回顾Stream管道流操作二、中间操作:有状态与无状态三、Limit与Skip管道数据截取四、Distinct元素去重五、Sorted排序六、串行、并行与顺序一、回顾Stre...
    99+
    2022-11-13
  • 如何理解java 多态与抽象类
    今天就跟大家聊聊有关如何理解java 多态与抽象类,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。前言今天是2021LOL全球总决赛,一直不被大家看好的EDG冲到了决赛对战韩国队的DK...
    99+
    2023-06-25
  • java方法与数组基础使用详解
    目录一、方法的使用1、方法的定义2、方法重载二、数组的定义和使用1、数组的基本概念(1)数组的创建(2)数组的初始化(3)数组的遍历2、数组是引用类型(JVM的内存分布)3、引用变量...
    99+
    2022-11-13
  • pytorch collate_fn的基础与应用教程
    目录作用原则基础datasetdataloader应用情形总结作用 collate_fn:即用于collate的function,用于整理数据的函数。 说到整理数据,你当然要会用数据...
    99+
    2022-11-13
  • java基础理论Stream的Filter与谓词逻辑
    一、基础代码准备 建立一个实体类,该实体类有五个属性。下面的代码使用了lombok的注解Data、AllArgsConstructor,这样我们就不用写get、set方法和全参构造...
    99+
    2022-11-13
  • 云服务器基础运维与管理费用多少
    云服务器基础运维与管理费用的价格可能因云服务器提供商、服务类型、地区、时间以及使用者的个体情况而有所不同。以下是一些可能的云服务器基础运维和管理费用的参考值: 云服务器租用费用 在一些大型的云服务器提供商,如AWS和Google Cl...
    99+
    2023-10-27
    管理费用 服务器 基础
  • MySQL与PHP的基础与应用专题之索引
    概述 从今天开始, 小白我将带领大家一起来补充一下 数据库的知识. 索引 索引 (Index) 是一种特殊的数据结构, 类似于图书的目录. 索引能够极大的提升数据库的查询效率. 如...
    99+
    2022-11-13
  • JavaScript中颜色模型的基础知识与应用详解
    目录介绍RGB模型RGB颜色值rgb 转 hexhex 转 rgbHSL模型HSV(B)模型RGB 与 HSL 的转换rgb 转 hslhsl 转 rgb介绍 颜色模型,是用来表示颜...
    99+
    2023-02-22
    JavaScript颜色模型知识 JavaScript颜色模型应用 JavaScript颜色模型
  • java理论基础Stream元素的匹配与查找
    目录一、对比一下有多简单二、其他匹配规则函数介绍三、元素查找与Optional 在我们对数组或者集合类进行操作的时候,经常会遇到这样的需求,比如: 是否包含某一个“匹配规...
    99+
    2022-11-13
  • Java 超基础讲解String的使用
    目录1.String概述2.特点3.String构造方法4.String对象的特点5.字符串的比较6.实现用户登录7.总结1.String概述 String类在java.lang包下...
    99+
    2022-11-13
  • 怎样理解Java中的多态
    今天就跟大家聊聊有关怎样理解Java中的多态,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。一、多态的概念       继承关系使一个子类能继承...
    99+
    2023-06-22
  • Java多态与抽象类的使用与原理是什么
    这篇文章主要介绍“Java多态与抽象类的使用与原理是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Java多态与抽象类的使用与原理是什么”文章能帮助大家解决问题。我们知道Java的三大特性:封装...
    99+
    2023-06-29
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作