当前位置: 首页 > news >正文

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

White graces:个人主页

🙉专栏推荐: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);}@Overridepublic 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);}
}

🌼运行结果🌼

🌸三.重写和重载🌸

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

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

💦可以参考下图

🌸四.转型🌸

🍎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(); //两者运行结果相同}
}

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

🍎2.向下转型🍎

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

💦我们来看一个实例

🌳1.instanceof关键字🌳

📚作用:判断是否成功向下转型

📚格式:对象名 + 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 {@Overridepublic void draw() {System.out.println("正方形");}
}
class San extends Shape {@Overridepublic void draw() {System.out.println("三角形");}
}

🌼选择语句实现🌼

 

🌼多态实现🌼

🌸六.重写方法的调用🌸

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

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

🌼运行结果和分析🌼

🌼 温馨提示🌼

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

🧡🧡🧡🧡🧡🧡🧡🧡🧡

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

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

🌸三.结语+美图分享🌸


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

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

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

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

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

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

🙆‍♂️🙆‍♂️🙆‍♂️🙆‍♂️🙆‍♂️🙆‍♂️🙆‍♂️🙆‍♂️🙆‍♂️🙆‍♂️🙆‍♂️🙆‍♂️🙆‍♂️

http://www.lryc.cn/news/126385.html

相关文章:

  • golang官方限流器rate包实践
  • [windows]MAT- 下载及安装
  • 数组模拟环形队列详解
  • 《论文阅读12》RandLA-Net: Efficient Semantic Segmentation of Large-Scale Point Clouds
  • elementPlus使用el-icon
  • 预测知识 | 神经网络、机器学习、深度学习
  • 【Linux】进程的基本属性|父子进程关系
  • CCF考试:201809-1 卖菜(java代码)
  • android wifi扫描 framework层修改扫描间隔
  • webstorm debug调试vue项目
  • 嵌入式linux的八股文之旅 DAY1
  • 同创永益郑阳|与数智化共舞·业务稳定性保障新动力
  • 史上最全的Qt控件
  • 星星之火:国产讯飞星火大模型的实际使用体验(与GPT对比)
  • 传输控制协议TCP
  • jmeter中用户参数和用户定义的变量的区别
  • WSL2 Ubuntu子系统安装OpenCV
  • KafkaStream:Springboot中集成
  • 包管理工具 nvm npm nrm yarn cnpm npx pnpm详解
  • 【java】mybatis-plus代码生成
  • 小样本UIE 信息抽取微调快速上手(不含doccona标注)
  • Vue项目(购物车)
  • 23.08.16驱动点灯
  • 数据结构——堆
  • 重复学习1:NLP
  • 做海外游戏推广有哪些条件?
  • JavaFx基础学习【五】:FXML布局文件使用
  • 通过Python爬虫提升网站搜索排名
  • 【博客698】为什么当linux作为router使用时,安装docker后流量转发失败
  • el-dialog嵌套,修改内层el-dialog样式(自定义样式)