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

能进入危险网站的浏览器郑州做网站企业

能进入危险网站的浏览器,郑州做网站企业,观音桥网站建设网站建设,网站前端和后台目录 🚀前言🤔什么是多态?🌟多态的优缺点💯优点💯缺点 🌟类型转换💯自动类型转换💯强制类型转换 🚀前言 大家好!我是 EnigmaCoder。 本文介绍java…

目录

  • 🚀前言
  • 🤔什么是多态?
  • 🌟多态的优缺点
    • 💯优点
    • 💯缺点
  • 🌟类型转换
    • 💯自动类型转换
    • 💯强制类型转换

🚀前言

在这里插入图片描述

大家好!我是 EnigmaCoder
本文介绍java面向对象编程三大特性之一的多态,包括定义、优缺点、类型转换等。

🤔什么是多态?

多态是继承情况下的一种现象,表现为:对象多态、行为多态。

前提

  • 有继承关系
  • 存在父类引用子类对象
  • 存在方法重写

注意:多态是对象、行为的多态,java中的成员变量没有多态。

代码示例

public class Test {public static void main(String[] args) {//对象多态、行为多态Animal a1=new Wolf();a1.run();//方法:编译看左边,运行看右边System.out.println(a1.name); //成员变量:编译看左边,运行也看左边。Animal a2=new Tortoise();a2.run();//方法:编译看左边,运行看右边System.out.println(a2.name);//成员变量:编译看左边,运行也看左边。}
}class Animal {String name="Animal";public void run(){System.out.println("Animal is running");}
}class Tortoise extends Animal{String name="乌龟";@Overridepublic void run(){System.out.println("乌龟跑得慢");}
}class Wolf extends Animal{String name="狼";@Overridepublic void run(){System.out.println("狼跑的快");}
}

运行结果

狼跑的快
Animal
乌龟跑得慢
Animal

🌟多态的优缺点

💯优点

  • 在多态形式下,右边对象是解耦合的,更便于扩展和维护。

例如

Animal a1=new Wolf();
a1.run();

上述代码中的Wolf()可以替换成其它继承了Animal父类的子类。

  • 定义方法时,使用父类类型的形参,可以接收一切子类对象,扩展性更强、更便利。

例如

public class Test {public static void main(String[] args) {Animal a1=new Wolf();a1.run();//父类类型的变量作为参数,可以接收一个子类对象Wolf w=new Wolf();go(w);Tortoise t=new Tortoise();go(t);}public static void go(Animal a){a.run();}
}

💯缺点

多态下不能使用子类的独有功能,换句话说,多态下只能使用被重写的方法。

🌟类型转换

  • 自动类型转换:父类 变量名 = new 子类();
  • 强制类型转换:子类 变量名 = (子类)父类变量;

💯自动类型转换

自动类型转换(也叫隐式类型转换)指的是小范围数据类型自动转换为大范围数据类型,或者子类对象自动转换为父类对象。这种转换无需额外操作,系统会自动完成。

class Animal {public void makeSound() {System.out.println("Animal makes a sound");}
}class Dog extends Animal {@Overridepublic void makeSound() {System.out.println("Dog barks");}
}public class AutomaticConversion {public static void main(String[] args) {Dog dog = new Dog();// 自动类型转换:子类对象转换为父类对象Animal animal = dog;animal.makeSound();}
}

💯强制类型转换

强制类型转换(也叫显式类型转换)指的是将大范围数据类型转换为小范围数据类型,或者父类对象转换为子类对象。进行强制类型转换时,需要使用强制转换运算符 (type)。不过要注意,在进行父类对象到子类对象的转换时,要确保该父类对象实际上引用的是子类对象,不然会引发 ClassCastException 异常。

class Animal {public void makeSound() {System.out.println("Animal makes a sound");}
}class Dog extends Animal {@Overridepublic void makeSound() {System.out.println("Dog barks");}public void wagTail() {System.out.println("Dog wags its tail");}
}public class ForcedConversion {public static void main(String[] args) {Animal animal = new Dog();// 强制类型转换:父类对象转换为子类对象Dog dog = (Dog) animal;dog.makeSound();dog.wagTail();}
}

小结

  • 自动类型转换:是安全的,系统会自动完成。
  • 强制类型转换:存在风险,使用时要确保转换的安全性,可借助 instanceof 运算符进行检查。

示例代码如下:

class Animal {public void makeSound() {System.out.println("Animal makes a sound");}
}class Dog extends Animal {@Overridepublic void makeSound() {System.out.println("Dog barks");}public void wagTail() {System.out.println("Dog wags its tail");}
}public class TypeConversionExample {public static void main(String[] args) {Animal animal = new Dog();if (animal instanceof Dog) {Dog dog = (Dog) animal;dog.makeSound();dog.wagTail();}}
}

在上述代码里,运用 instanceof 运算符来判断 animal 对象是否为 Dog 类的实例,若为真,再进行强制类型转换,以此确保转换的安全性。

http://www.dtcms.com/a/603355.html

相关文章:

  • Selenium的使用
  • 皮革城网站建设方案农场游戏系统开发网站建设推广
  • 新开传奇网站发布网中变做微信的网站
  • Memcached 教程
  • 哪家网站做民宿好互联网保险发展现状分析
  • springboot基于Java的在线考试系统设计与实现(代码+数据库+LW)
  • 郑州公路建设有限公司网站网上商店系统设计与开发
  • 鹤山做网站建站平台加盟
  • 建设资格注册管理中心网站网站设计师和ui设计师
  • 中英文网站建设企业金水区网站建设
  • 创可贴网站怎么做图片大全外国出名的设计网站
  • 淘宝网站建设原理东莞网站建设基本流程图
  • 创业网站怎么做的东莞东城楼盘
  • 从虚拟机里面下载文件到本地桌面怎么比较方便
  • 酒泉北京网站建设移动端app开发公司
  • dism++实操之注入驱动
  • C++模板:泛型编程与函数模板详解(上)
  • 佛山网站建设公司电话温州市瓯海建设局网站
  • 反编译要会几种语言|深入理解反编译技术及其应用
  • 网站开发所需资料网站建设需要哪些专业技术
  • 湖南网站建设联系电话网站开发带后台
  • C语言反编译器 | 如何使用反编译工具恢复源代码
  • 哈尔滨网站设计公司枣庄三合一网站开发
  • C语言编译器哪个好学 | 选择合适的C语言编译器,助力编程学习
  • 太原微信网站开发微商城手机网站模板
  • JUC的常见类
  • win7iis配置网站vps搭建个人网站
  • 【剑斩OFFER】算法的暴力美学——点名
  • 昆明做网站公司我网站建设
  • word文档文字的尾部空格设置不了下划线【解决办法】