“深入剖析Java多态:点燃编程世界火花“

这篇具有很好参考价值的文章主要介绍了“深入剖析Java多态:点燃编程世界火花“。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

“深入剖析Java多态:点燃编程世界火花“,“Java入门指南:从零开始学习Java编程”,java,开发语言
White graces:个人主页

🙉专栏推荐:Java入门知识🙉

🙉 内容推荐:“继承与组合:代码复用的两种策略“🙉

🐹今日诗词:马踏祁连山河动,兵起玄黄奈何天🐹


快去学习

“深入剖析Java多态:点燃编程世界火花“,“Java入门指南:从零开始学习Java编程”,java,开发语言

🌸思维导图🌸

“深入剖析Java多态:点燃编程世界火花“,“Java入门指南:从零开始学习Java编程”,java,开发语言

🌸一.多态概念🌸

💦多态:不同对象执行同一方法产生出不同结果

💦比如:狗狗吃饭和猫咪吃饭,同样吃饭,狗狗吃狗粮,猫咪吃猫粮,这也是多态

🌸二.多态实现条件🌸

💦三要素: 🌼1.继承

                    🌼2.子类必须要对父类方法进行重写

                    🌼3.通过父类的引用调用重写的方法

💦这三者同时具备形成了多态

package Test1;
class Animal {
    String name;
    int age;

    public Animal(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public void eat() { //父类的方法
        System.out.println(age + "岁的" + name + "正在吃-----");
    }
}
class Dog extends Animal {
    public Dog(String name, int age) {
        super(name,age);
    }
    @Override           //这表明父类方法被重写了
    public void eat() {  //子类重写父类方法
        System.out.println(age + "岁的" + name + "正在吃狗粮");
    }
}
class Cat extends Animal {
    public Cat(String name, int age) {
        super(name, age);
    }

    @Override
    public void eat() {     //子类重写父类方法
        System.out.println(age + "岁的" + name + "正在吃猫粮");
    }
}
public class Test1 {
    public static void eat(Animal animal) { //Animal animal就是父类的引用
        animal.eat();
    }
    public static void main(String[] args) {

        Dog dog = new Dog("狗狗", 3);
        Cat cat = new Cat("猫猫", 4);
        eat(dog); ///通过父类的引用调用对应的eat方法
        eat(cat);
    }
}

🌼运行结果🌼

“深入剖析Java多态:点燃编程世界火花“,“Java入门指南:从零开始学习Java编程”,java,开发语言

🌸三.重写和重载🌸

💦重写:方法名不变、参数不变、返回类型不变、内容随意(除了内容,其他和父类保持一致

💦重载:方法名不变、参数必须改变、返回类型可以改变、内容随意

💦可以参考下图

“深入剖析Java多态:点燃编程世界火花“,“Java入门指南:从零开始学习Java编程”,java,开发语言

🌸四.转型🌸

🍎1.向上转型🍎

💦实际就是创建一个子类对象

💦语法:父类类型  对象名 = new 子类类型

package Test1;
class Animal {
    String name;
    int age;

    public Animal(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public void eat() { //父类的方法
        System.out.println("父类方法");
    }
}
class Dog extends Animal {
    public Dog(String name, int age) {
        super(name,age);
    }
    @Override           //这表明父类方法被重写了
    public void eat() {  //子类重写父类方法
        System.out.println(age + "岁的" + name + "正在吃狗粮");
    }
    public void bark() {
        System.out.println("汪汪叫");
    }
}

public class Test1 {
    public static void eat(Animal animal) { //Animal animal就是父类的引用
        animal.eat();
    }
    public static void main(String[] args) {
        Animal animal =new Dog("狗狗",3);
        eat(animal); 
        animal.eat(); //两者运行结果相同
    }
}

“深入剖析Java多态:点燃编程世界火花“,“Java入门指南:从零开始学习Java编程”,java,开发语言

💦值得注意的是:向上转型之后就不能调用了子类Dog特有的bark方法了

🍎2.向下转型🍎

💦向下转型用到的方法是强制类型转换

💦我们来看一个实例

“深入剖析Java多态:点燃编程世界火花“,“Java入门指南:从零开始学习Java编程”,java,开发语言

🌳1.instanceof关键字🌳

📚作用:检查对象实际类型 是否是 某个类或某个类的子类的类型

📚返回类型:  boolean类型

📚格式:对象名 + instanceof + 类型

🌸五.多态与选择语句🌸

📚分别用多态选择语句实现一个画图形功能

💦有四种图形:⚪,矩形,正方形,三角形,我们用类来描述

class Shape {
    public void draw() {
        System.out.println("画图型");
    }
}
class Yuan extends Shape {
    @Override  //重写
    public void draw() {
        System.out.println("⚪");
    }
}
class Juxing extends Shape {
    @Override //重写
    public void draw() {
        System.out.println("矩形");
    }
}
class Fang extends Shape {
    @Override
    public void draw() {
        System.out.println("正方形");
    }
}
class San extends Shape {
    @Override
    public void draw() {
        System.out.println("三角形");
    }
}

🌼选择语句实现🌼

“深入剖析Java多态:点燃编程世界火花“,“Java入门指南:从零开始学习Java编程”,java,开发语言

 

🌼多态实现🌼“深入剖析Java多态:点燃编程世界火花“,“Java入门指南:从零开始学习Java编程”,java,开发语言

🌸六.重写方法的调用🌸

📚我们来看一下面的坑爹例子

package Test1;
class B {
    public B() {
        func();  //构造方法中调用func方法
    }
    public void func() {
        System.out.println("B.func()");
    }
}
class D extends B {
    private int num = 1;
    @Override
    public void func() {  //子类重写了父类的func方法
        System.out.println("D.func() " + num);
    }
}
public class Test1 {
    public static void main(String[] args) {
        D d = new D();
    }
}

🌼运行结果和分析🌼

“深入剖析Java多态:点燃编程世界火花“,“Java入门指南:从零开始学习Java编程”,java,开发语言

🌼 温馨提示🌼

🌼尽量不要在构造方法中调用其他方法🌼

🧡🧡🧡🧡🧡🧡🧡🧡🧡

🧡🧡🧡以上就是这篇文章的所有内容了🧡🧡🧡

🧡🧡🧡谢谢阅读本文,希望你能从中获得一些启发和思考 🧡🧡🧡

🌸三.结语+美图分享🌸

“深入剖析Java多态:点燃编程世界火花“,“Java入门指南:从零开始学习Java编程”,java,开发语言


✨🎆谢谢你的阅读和耐心!祝愿你在编程的道路上取得更多的成功与喜悦!"🎆✨🎄

⭐️点赞收藏加关注,学习知识不迷路⭐️

🎉✔️💪🎉✔️💪🎉✔️💪🎉✔️💪🎉

👍😏⛳️ 点赞☀️收藏 ⭐️ 关注!😏👍

👍😏⛳️ 点赞☀️收藏 ⭐️ 关注!😏👍

👍😏⛳️ 点赞☀️收藏 ⭐️ 关注!😏👍

🙆‍♂️🙆‍♂️🙆‍♂️🙆‍♂️🙆‍♂️🙆‍♂️🙆‍♂️🙆‍♂️🙆‍♂️🙆‍♂️🙆‍♂️🙆‍♂️🙆‍♂️文章来源地址https://www.toymoban.com/news/detail-651692.html

到了这里,关于“深入剖析Java多态:点燃编程世界火花“的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java 封装 继承 多态(深入理解)

    登神长阶 第二阶 封装 继承 多态 🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀 目录 🍒一.面向对象编程的三大特性 🍍二.封装 🧉1.定义及其作用  🥝2.访问限定符 🫛3.封装扩展 包(package) 🥕3.1.定义及其作用  🥦 3.2.导入包的类 🍔3.3.自定义包 🌯

    2024年03月11日
    浏览(96)
  • 【从JVM看Java,三问继承和多态,是什么?为什么?怎么做?深度剖析JVM的工作原理】

    《计算机底层原理专栏》:欢迎大家订阅学习,能够帮助到各位就是对我最大的鼓励! 文章目录 系列文章目录 前言 一、JVM是什么 二、 什么是继承 三、 什么是多态 总结         这篇文章聚焦JVM的实现原理,我更专注于从一个语言的底层原理,去剖析他的语法所实现的意义

    2024年02月05日
    浏览(51)
  • 从零开始学习 Java:简单易懂的入门指南之网络编程(三十七)

    1.1 网络编程概述 计算机网络 是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。 网络编程 在网络通信协议下,不同计算机上运

    2024年02月08日
    浏览(50)
  • 【教3妹学编程-java基础5】java多态详解

    3妹 :“太阳当空照,花儿对我笑,小鸟说早早早,你为什么背上炸药包” 2哥 :3妹,什么事呀这么开心呀。 3妹 :2哥你看今天的天气多好啊,阳光明媚、万里无云、秋高气爽,适合秋游。 2哥 :是啊,都快立冬了,天气还是这么热。今年的冬天比以往来的要晚一些。 3妹 :

    2024年02月05日
    浏览(33)
  • 【Java--数据结构】提升你的编程段位:泛型入门指南,一看就会!

    泛型是一种编程概念,它允许我们编写可以适用于多种数据类型的代码。通过使用泛型,我们可以在编译时期将具体的 数据类型作为参数 传递给代码,从而实现代码 的复用和灵活性 。 在传统的编程中,我们通常需要为不同的数据类型编写不同的代码,这样会导致代码冗余

    2024年04月26日
    浏览(63)
  • 深入剖析 Java 类属性与类方法的应用

    Java 类属性,也称为字段,是类中的变量。它们用于存储与类相关的数据。 创建类属性 在类定义中声明属性: 访问类属性 使用点语法访问对象的属性: 修改类属性 可以修改对象的属性值: 属性类型 属性可以是任何数据类型,包括: 基本类型:int、double、boolean、char等 引

    2024年02月21日
    浏览(36)
  • 【Java不看后悔系列】|面向对象编程|[继承、封装、多态全覆盖]

    🌈个人主页:  Aileen_0v0 🔥系列专栏: Java学习系列专栏 💫个人格言:\\\"没有罗马,那就自己创造罗马~\\\" (inheritance) 1.A child class inherits everything from its parent class. 2.A child class cannot inherit the constructors from its parent class . 子类 继承 的内容: 字段(成员变量): 子类会继承父类的字段

    2024年02月05日
    浏览(49)
  • “深入剖析JVM内部原理:解密Java虚拟机的奥秘“

    标题:深入剖析JVM内部原理:解密Java虚拟机的奥秘 摘要:本文将深入探讨Java虚拟机(JVM)的内部原理,包括其架构、内存管理、垃圾回收机制、即时编译器等关键组成部分。通过解密JVM的奥秘,我们将更好地理解Java程序的执行过程,并能够优化代码的性能。 正文: 一、

    2024年02月13日
    浏览(42)
  • “深入剖析JVM内部机制:理解Java虚拟机的工作原理“

    标题:深入剖析JVM内部机制:理解Java虚拟机的工作原理 介绍: Java虚拟机(JVM)是Java语言的核心组件,负责将Java源代码转换为可以在计算机上运行的机器码。了解JVM的内部机制对于开发人员来说非常重要,因为它可以帮助我们更好地理解Java程序的运行行为和性能优化。本文

    2024年02月12日
    浏览(45)
  • “深入剖析JVM内部机制:探索Java虚拟机的运行原理“

    标题:深入剖析JVM内部机制:探索Java虚拟机的运行原理 摘要:本文将深入探讨Java虚拟机(JVM)的内部机制,包括类加载、内存管理、垃圾回收、即时编译等关键概念和原理,帮助开发者更好地理解JVM的运行机制。 正文: 一、类加载机制 Java虚拟机通过类加载机制将字节码文

    2024年02月14日
    浏览(60)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包