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

网站必须备案吗营销型网站建设主要步骤

网站必须备案吗,营销型网站建设主要步骤,域名备案不是网站公司做的,wordpress页眉导航栏位置在 Java 编程的世界里,多态是面向对象编程的三大特性之一,它赋予了程序强大的灵活性和扩展性。本文将深入探讨 Java 多态,通过代码示例帮助你全面理解这一重要概念。 一、什么是多态 多态(Polymorphism)在希腊语中意为…

       在 Java 编程的世界里,多态是面向对象编程的三大特性之一,它赋予了程序强大的灵活性和扩展性。本文将深入探讨 Java 多态,通过代码示例帮助你全面理解这一重要概念。

一、什么是多态

        多态(Polymorphism)在希腊语中意为 “多种形态”。在 Java 中,多态指的是同一个方法调用,根据调用对象的不同会产生不同的行为。简单来说,就是可以用一个父类类型的变量引用子类对象,在运行时根据实际引用的子类对象来决定调用哪个子类的方法。多态使得程序可以根据对象的实际类型来调用相应的方法,而不是根据变量的声明类型,这大大增强了程序的可扩展性和可维护性。

二、多态的实现方式

Java 中多态主要通过方法重载(Overloading)和方法重写(Overriding)来实现。

(一)方法重载(Overloading)

        方法重载是指在同一个类中,多个方法可以有相同的方法名,但参数列表不同(参数个数、类型或顺序不同)。编译器会根据调用方法时传入的参数来决定调用哪个重载版本的方法。

public class Calculator {// 计算两个整数的和public int add(int a, int b) {return a + b;}// 计算三个整数的和public int add(int a, int b, int c) {return a + b + c;}// 计算两个浮点数的和public double add(double a, double b) {return a + b;}
}

        在上述代码中,Calculator类有三个add方法,它们方法名相同,但参数列表不同。通过这种方式,我们可以根据不同的需求调用不同版本的add方法。

public class Main {public static void main(String[] args) {Calculator calculator = new Calculator();int sum1 = calculator.add(2, 3);int sum2 = calculator.add(2, 3, 4);double sum3 = calculator.add(2.5, 3.5);System.out.println("两个整数的和:" + sum1);System.out.println("三个整数的和:" + sum2);System.out.println("两个浮点数的和:" + sum3);}
}

(二)方法重写(Overriding)

        方法重写发生在子类与父类之间。当子类继承父类后,子类可以重新定义父类中已有的方法,要求方法名、参数列表、返回类型(或是返回类型的子类型)都必须与父类中的方法一致。重写后的方法在子类对象调用该方法时,会执行子类中重写后的代码逻辑,而不是父类中的代码逻辑。

class Animal {public void makeSound() {System.out.println("动物发出声音");}
}
class Dog extends Animal {@Overridepublic void makeSound() {System.out.println("汪汪汪");}
}
class Cat extends Animal {@Overridepublic void makeSound() {System.out.println("喵喵喵");}
}

        在上述代码中,DogCat类继承自Animal类,并分别重写了makeSound方法。当DogCat类的对象调用makeSound方法时,会执行它们各自重写后的方法。

public class Main {public static void main(String[] args) {Animal animal1 = new Dog();Animal animal2 = new Cat();animal1.makeSound();animal2.makeSound();}
}

        运行上述代码,输出结果为:

汪汪汪
喵喵喵

        可以看到,虽然animal1animal2声明的类型是Animal,但实际调用makeSound方法时,执行的是它们所指向的具体子类(DogCat)的重写方法,这就是多态在方法重写中的体现。

三、多态的优势

(一)提高代码的可扩展性

        当需要添加新的子类时,不需要修改现有的代码,只需要在新的子类中实现相应的方法即可。例如,在上述动物的例子中,如果要添加一个新的Bird类,只需要让Bird类继承Animal类并重写makeSound方法,而不需要修改Animal类以及其他已有的子类和调用makeSound方法的代码。

class Bird extends Animal {@Overridepublic void makeSound() {System.out.println("叽叽叽");}
}

(二)增强代码的可维护性

        多态使得代码结构更加清晰,不同的子类实现各自的行为,降低了代码的耦合度。例如,在一个图形绘制的程序中,有CircleRectangle等不同的图形类,它们都继承自Shape类并重写draw方法。在绘制图形的代码中,只需要通过Shape类型的变量来调用draw方法,而不需要关心具体是哪种图形,这样当图形类的实现发生变化时,不会影响到绘制图形的代码。

class Shape {public void draw() {System.out.println("绘制图形");}
}
class Circle extends Shape {@Overridepublic void draw() {System.out.println("绘制圆形");}
}
class Rectangle extends Shape {@Overridepublic void draw() {System.out.println("绘制矩形");}
}
public class Main {public static void main(String[] args) {Shape shape1 = new Circle();Shape shape2 = new Rectangle();shape1.draw();shape2.draw();}
}

(三)实现代码的复用

        通过继承和方法重写,子类可以复用父类的部分代码,同时又能根据自身的特点进行个性化的实现。例如,Animal类中可能有一些通用的属性和方法,如name属性和eat方法,子类DogCat继承了这些属性和方法,并且可以根据自身需求重写makeSound方法,既实现了代码复用,又体现了不同子类的差异。

四、多态的注意事项

(一)方法重写的规则

  1. 重写方法的访问权限不能比被重写方法的访问权限更严格。例如,如果父类中的方法是public,子类重写该方法时不能将其定义为protectedprivate
  2. 重写方法不能抛出比被重写方法更宽泛的异常。例如,如果父类方法抛出IOException,子类重写方法不能抛出Exception(因为ExceptionIOException的父类,范围更宽泛),但可以抛出IOException的子类异常或者不抛出异常。
  3. 静态方法不能被重写。如果在子类中定义了一个与父类静态方法签名相同的静态方法,这只是一个新的静态方法,不是重写。

(二)多态中对象类型的判断

        在多态的场景下,有时候需要判断一个对象的实际类型。可以使用instanceof关键字来判断一个对象是否是某个类或其子类的实例。

public class Main {public static void main(String[] args) {Animal animal = new Dog();if (animal instanceof Dog) {System.out.println("这是一只狗");} else if (animal instanceof Cat) {System.out.println("这是一只猫");}}
}

        上述代码中,通过instanceof判断animal对象是否是Dog类的实例,由于animal实际指向的是Dog类的对象,所以会输出 “这是一只狗”。

五、总结

        多态是 Java 面向对象编程中非常重要的概念,通过方法重载和方法重写,它为程序带来了高度的灵活性、可扩展性和可维护性。理解并熟练运用多态,能够帮助我们编写更加健壮、高效的 Java 程序。希望本文的介绍和代码示例能让你对 Java 多态有更深入的理解,在今后的编程实践中充分发挥多态的优势。

        通过以上对 Java 多态的全面讲解,相信你已经对多态有了清晰的认识。在实际编程中,多态会频繁出现,不断练习和应用,你将能更好地掌握这一强大的特性。


文章转载自:

http://w4uvMSm6.wdrxh.cn
http://eAPir7yA.wdrxh.cn
http://PgI2Wsd8.wdrxh.cn
http://dOr6TiWz.wdrxh.cn
http://uYccOYhv.wdrxh.cn
http://aKdBan3r.wdrxh.cn
http://l2EyuYFE.wdrxh.cn
http://67enLogG.wdrxh.cn
http://FGzP49hC.wdrxh.cn
http://lppeDhq6.wdrxh.cn
http://nZ7bHbL6.wdrxh.cn
http://lGU6Px4h.wdrxh.cn
http://7h0z3rGJ.wdrxh.cn
http://GnY8zfgz.wdrxh.cn
http://fozyLCv3.wdrxh.cn
http://Rj0DJ8Eb.wdrxh.cn
http://eLGUEwID.wdrxh.cn
http://0f68YMug.wdrxh.cn
http://jMBhNObf.wdrxh.cn
http://5InK6n1S.wdrxh.cn
http://R1F19i8m.wdrxh.cn
http://AyOjoCL6.wdrxh.cn
http://akXIUg9X.wdrxh.cn
http://CkpKuw6O.wdrxh.cn
http://4EKZsYzd.wdrxh.cn
http://bul3FWso.wdrxh.cn
http://3wkBE1nn.wdrxh.cn
http://SayqtONi.wdrxh.cn
http://5itKGyAk.wdrxh.cn
http://1e2k5PHo.wdrxh.cn
http://www.dtcms.com/wzjs/609127.html

相关文章:

  • html5网站开发公司做网站大概要多久
  • 如何使用wordpress建站做视频网站需要什么服务器配置
  • 婚纱摄影网站的设计与实现论文万网是做什么的
  • 珠海网站上排名写一个app多少钱
  • 徐州网站建设技术全flash网站制作教程
  • 深圳做网站排名公司哪家好古腾堡布局的网站
  • 嘉兴外贸网站建设网站地图建设有什么用
  • 怎么建设宣传网站wordpress打开网站前动画
  • 果壳 wordpressseo还有前景吗
  • 什么是品牌网站报名系统网站开发
  • 做吗查网站的流量亚马逊跨境电商官方网站
  • 数字化校园门户网站建设方案页面设计图标
  • 河北建设厅官网站首页手机兼职有哪些
  • 怎么做网站横幅建设网站找什么问题
  • 租空间做网站wordpress子页面内容
  • 四川省住房城乡建设厅网站wordpress 对象存储插件
  • 建筑设计公司网站模板python做网站是不是特别慢
  • 网站关键字 优帮云网站查询工具seo
  • 网站网站建设网站上海建设安全生产协会网站
  • 一般网站建设流程有哪些步骤做网站项目的弊端
  • 做网站实训报告总结模板网站怎么做301
  • 南京网站群建设公司二维码网页制作免费网站制作
  • 国内免费图片素材网站2023新闻大事件摘抄
  • 建设一个网站平台搜索引擎的关键词优化
  • php开源网站工作不开心应该辞职吗
  • 自己做网站除了域名还需要什么门户网站建设进一步提升
  • 广东品牌网站建设公司静态做网站
  • 廊坊seo建站wordpress是php吗
  • php钓鱼网站开发做短视频网站收益
  • 斗门区住房和城乡建设网站把网页做成软件