浅析Java多态_JAVA多态

浅析Java多态_JAVA多态Java多态今天来谈谈Java中的多态,作为面向对象的一大特性,它的重要性不必多说,相比其他两特性(继承、封装)从字面上看就有点不易读懂,多种态度还是有多变态?官解官方解释:多态是同一个行为具有多个不同表现形式或形态的能力。多态就是同一个接口,使用不同的实例而执行不同操作。简单理解就是同一方法在不同类中有不同实现(继承关系上),在或者就是父类的引用指向子类对象;在这里我附上官方的图解:如图所示:一台打印机,都有着打印的功能,但是不同的打印机在不同的场景或者不同的需求上,可以打印出不同的

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

Java多态

今天来谈谈Java中的多态,作为面向对象的一大特性,它的重要性不必多说,相比其他两特性(继承、封装)从字面上看就有点不易读懂,多种态度还是有多变态?

官解

官方解释:

多态是同一个行为具有多个不同表现形式或形态的能力。

多态就是同一个接口,使用不同的实例而执行不同操作。

简单理解就是同一方法在不同类中有不同实现(继承关系上),再或者就是父类的引用指向子类对象;

在这里我附上官方的图解:

在这里插入图片描述

如图所示:一台打印机,都有着打印的功能,但是不同的打印机在不同的场景或者不同的需求上,可以打印出不同的效果(如:彩 色、黑色)。

再者:就比如你有一张银行卡需要去柜台取钱,此时你可以将银行卡递交给你的朋友或者亲戚去帮你取,照样可以把钱取出来,因为在取钱的过程中,柜台负责人或者ATM机并不知道拿卡的就是你自己;这个过程就是体现多态的一个过程。

多态的优点

既然了解了什么是多态,那接下来就要了解多态是用来做什么的,换句话说就是多态的优点是什么:

  • 可复用性:

    我们在写程序的时候,不必要为每一个子类都创建一个相同的方法或功能,我们只需要对抽象父类进行处理即可。

  • 提高扩展性和可维护性:

    子类的功能可以被父类的方法或引用变量所调用。

存在的必要条件

  • 继承或实现

  • 重写

  • 父类引用指向子类对象:如:Parent p = new Child();

    以上三个必要条件需同时满足,当使用多态的方式去调用方法时,首先必须检查父类中是否有该方法,如果没有,则编译错误;

    如果有,再去调用子类的同名方法。

格式:父类 变量名 = new 子类

​ 变量名.方法名()

public class Dad { 
   
    void method() { 
   
        System.out.println("我是父亲");
    }
}

class Son extends Dad { 
   
    @Override
        //实现重写父类的method()方法
    void method() { 
   
        System.out.println("我是儿子");
    }
    void play(){ 
   
        System.out.println("打篮球");
    }
}

class Dau extends Dad { 
   
    @Override
        //实现重写父类的method()方法
    void method() { 
   
        System.out.println("我是女儿");
    }
}

class test { 
   
    //实现多态,父类的引用指向子类对象
    public static void main(String[] args) { 
   
        Dad dad = new Son();
        //父类 子类
        dad.method();

        dad = new Dau();
        dad.method();
    }
}

Jetbrains全家桶1年46,售后保障稳定

输出结果:

我是儿子
我是女儿

引用数据类型的转型

引用数据类型的转型分为两种:向上转型和向下转型;

  • 向上转型是指把子类引用类型自动转换为父类引用类型,实现多态。
  • 向下转型是指把父类引用类型强制转换为子类引用类型,为调用子类特有的方法。

上述的代码就是向上转型,实现了多态;

class test { 
   
    //向下转型,调用Son的方法
    public static void main(String[] args) { 
   
        Dad dad = new Son();
        Son s = (Son) dad;
        //子类 父类
        s.play();
    }
}

输出结果:

打篮球

如上代码就是向下转型,调用了子类特有的play方法。


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/219157.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 解析LayoutSubviews

    解析LayoutSubviews解析LayoutSubviews原博:http://www.cnblogs.com/YouXianMing/p/3897543.html从百度上搜索了一下layoutSubviews的用处,以下是搜索的结果,当然,笔者是会一一验证的.1、init初始化不会触发layoutSubviews2、addSubview会触发layoutSubviews3、设置vie

    2022年7月25日
    9
  • 基于LDC1000的自动循迹小车

    基于LDC1000的自动循迹小车大三上学期课程设计的题目选了做小车,需要使用的是TI公司的LDC1000或者LDC1314,题目如下:首先选择做这道题是因为之前做小车比较熟悉,仔细分析一下其实也就是缺个传感器,其他的该有的都有了只需要稍作修改,于是乎开始了这一段有意思的旅途。将整个系统分为采集、处理、控制三部分。第一部分为采集模块,采用LDC1000采集赛道信息并转化为数字信号传输给数据处理模块。

    2022年6月7日
    39
  • 在 IDEA 中使用 Git 图文教程

    在 IDEA 中使用 Git 图文教程在IDEA中使用Git图文教程1.配置Git2.创建项目远程仓库3.初始化本地仓库3.连接远程仓库4.提交到本地仓库5.推送到远程仓库6.克隆远程仓库到本地7.分支操作8.总结1.配置Git想要在IDEA中使用Git,首先就需要在IDEA工具中对Git进行相关的配置。打开IDEA设置,之后按照下面图片中的步骤进行操作即可。需要注意的是,在PathGitexecutbale中,也就是设置Git可执行路径中,找到本机电脑上Git的安装位置,

    2022年6月22日
    111
  • idea2021.4激活码csdn_通用破解码

    idea2021.4激活码csdn_通用破解码,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月17日
    173
  • 磁盘阵列怎么组linux系统,Linux系统下如何设置磁盘阵列?

    磁盘阵列怎么组linux系统,Linux系统下如何设置磁盘阵列?在Linux系统中,磁盘阵列主要通过/etc/raidtab配置文件来控制的。若系统管理员需要实现磁盘阵列的话,就需要手工创建这个配置文件。或者从其他地方复制这个文件,并进行相应的修改。默认情况下,在Linux系统中不会有这个文件。下面笔者就对这个文件中的主要参数进行讲解,帮助大家建立一个正确的磁盘阵列配置文件。参数一:raid-level指定磁盘阵列的类型。  磁盘阵列到目前为止,有不下于十种…

    2022年5月18日
    46
  • 如何使用robots.txt及其详解

    如何使用robots.txt及其详解在国内,网站管理者似乎对robots.txt并没有引起多大重视,应一些朋友之请求,今天想通过这篇文章来简单谈一下robots.txt的写作。robots.txt基本介绍robots.txt是一个纯文本文件,在这个文件中网站管理者可以声明该网站中不想被robots访问的部分,或者指定搜索引擎只收录指定的内容。当一个搜索机器人(有的叫搜索蜘蛛)访问一个站点时,它会首先检查该站点根目录下是否存在robots.txt,如果存在,搜索机器人就会按照该文件中的内容来确定访问的范围;如果该文件不存在,…

    2022年6月11日
    33

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号