java中多态运用

本文详细介绍了多态性的概念,包括它在Java中的应用,如需存在继承关系、方法重写以及父类引用子类对象。同时阐述了多态成员变量和方法的特点,前者在运行时看左边,后者运行时看右边。`instanceof`关键字用于判断对象类型,而多态转型分为向上和向下转型。通过实例解析,帮助读者深入理解多态在实际编程中的运用。
摘要由CSDN通过智能技术生成

1.多态的概念

同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果,这就是多态性,比如钢笔是笔,笔是书写工具,则工具和笔是钢笔的两种形态。

2.多态的使用

(1)要有继承关系的存在

(2)要有方法的重写

(3)要有父类引用指向子类对象

3.多态成员变量的特点

编译看左边,运行看左边。

Fu f=new Zi();

System.out.println(f.num);//f是Fu中的值,只能取到父中的值

4.多态成员方法的特点

编译看左边,运行看右边。

Fu f1=new Zi();

System.out.println(f1.show());//f1的门面类型是Fu,但实际类型是Zi,所以调用的是重写后的方法。

5.instanceof关键字

用来判断某个对象是否属于某种数据类型, 返回类型为布尔类型。

6.多态转型

向上转型:父类类型 变量名=new 子类类型();

向下转型:子类类型 变量名=(子类类型) 父类类型的变量;

Java数组和多态运用可以结合起来,以实现灵活的数据存储和处理。 1. 数组与多态 Java的数组是一种特殊的数据类型,可以用来存储一组具有相同数据类型的值。多态是一种面向对象编程的特性,允许不同的对象使用相同的接口来实现不同的行为。 在Java,数组与多态可以结合起来使用,例如可以定义一个Animal数组,其存储了不同类型的动物对象,包括Cat、Dog等,这样就可以使用相同的接口来处理不同类型的动物对象。 2. 实例 下面是一个简单的例子,通过数组与多态来实现对不同类型的图形对象进行面积计算: ```java public class Shape { public double getArea() { return 0; } } public class Circle extends Shape { private double radius; public Circle(double radius) { this.radius = radius; } @Override public double getArea() { return Math.PI * radius * radius; } } public class Rectangle extends Shape { private double width; private double height; public Rectangle(double width, double height) { this.width = width; this.height = height; } @Override public double getArea() { return width * height; } } public class ShapeTest { public static void main(String[] args) { Shape[] shapes = new Shape[2]; shapes[0] = new Circle(10); shapes[1] = new Rectangle(5, 10); double totalArea = 0; for (Shape s : shapes) { totalArea += s.getArea(); } System.out.println("Total area: " + totalArea); } } ``` 在上面的例子,定义了一个Shape类作为基类,Circle和Rectangle类都继承自Shape类,并实现了getArea()方法来计算图形的面积。在ShapeTest类,定义了一个Shape数组,其存储了不同类型的图形对象,然后通过循环遍历数组,调用每个图形对象的getArea()方法,最后计算出总面积。这样就可以灵活地处理不同类型的图形对象了。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

手可摘鑫晨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值