首页 > 编程语言 >java中关于多态的理解

java中关于多态的理解

时间:2023-07-25 22:22:05浏览次数:40  
标签:java double findArea 多态 理解 子类 Circle public

多态:是同一个行为具有多个不同表现形式或形态的能力。

在代码的运用中主要是关于子类中方法的重写,实现了同一个父类接口可以进行不同子类中重写的方法

public class GeometricOject {//父类

    public double findArea(){
        return 0.0;
    }
}
public class Circle extends GeometricOject{//子类
    private double radius;
    public Circle(double radius){
        this.radius=radius;
    }
    @Override
    public double findArea() {
        return Math.PI*radius*radius;
    }
}
public class MyRectangle extends GeometricOject{//子类
        private double height;
        private double width;
    public MyRectangle(double height,double width){
        this.width=width;
        this.height=height;
    }
    @Override
    public double findArea() {
        return height*width;
    }
}
public class GeometricTest {
    public static void main(String[] args) {
        GeometricTest test=new GeometricTest();
        Circle c=new Circle(5);
        MyRectangle m=new MyRectangle(3,5);
        test.displayGeoetricTest(c);
        test.displayGeoetricTest(m);

    }
    public void displayGeoetricTest(GeometricOject g){//相当于GeometricOject g=new Circle();
        System.out.println(g.findArea());
    }
}

 

在GeometricTest中,我们声明了displayGeoetricTest方法,我们的接口是父类类型,但是我们传给他的却是子类Circle和子类MyRectangle类型,在编译器中认为是调用父类的findArea,但在实际代码运行中调用的是子类中findArea方法,从而实现多态——一个接口调用了不同子类中重写的方法,也可写作GeometricOject g=new Circle();但是多态也有局限性,不能使用此方法调用子类中特有的方法

多态的使用有以下三个要求:

  • 继承
  • 重写
  • 父类引用指向子类对象:Parent p = new Child();

标签:java,double,findArea,多态,理解,子类,Circle,public
From: https://www.cnblogs.com/upeveryday/p/17581214.html

相关文章

  • Java面试常见问题总结
    Java面试常见问题总结Java基础Java中的几种基本数据类型是什么?对应的包装类型是什么?各自占用多少字节呢?String、StringBuffer和StringBuilder的区别是什么?String为什么是不可变的?Strings1=newString("abc");这段代码创建了几个字符串对象?==与equals?hashCo......
  • rtos 理解
    1:操作系统中挂起(suspend)和阻塞(pend/block)的区别如下:一:挂起是一种主动行为,因此恢复也应该要主动完成;而阻塞则是一种被动行为,是在等待事件或资源时任务的表现,你不知道他什么时候被阻塞(pend),也就不能确切知道他什么时候恢复阻塞。而且挂起队列在操作系统里可以看成一个,而阻塞队列则......
  • 03_JavaScript
    一.JavaScript概述1.简介JavaScript一种解释性脚本语言,是一种动态类型、弱类型、基于原型继承的语言,内置支持类型。它的解释器被称为JavaScript引擎,作为浏览器的一部分,广泛用于客户端的脚本语言,用来给HTML网页增加动态功能。脚本语言是为了缩短传统的编写-编译-链接-运行(edit-......
  • day02Java的概念
    day02Java的概念一、入门案例详解如何开发一个Java程序需求:输出HelloWorld!!!新建文本文档,命名为HelloWorld,将后缀名.txt修改为.java(创建一个Java文件)在Java文件中创建类语法:class类名{}EXclassDemo{}在类中添加main方法main方法也叫主方法,是程序的入口p......
  • java分布式事务
    1、2pc原理准备阶段、提交阶段、回滚 协调者和参与者二阶段和三阶段cap定律:可用性,一致性、分区容错性 ......
  • javaweb项目搭建及Servlet用法
    一.Javaweb1.常见软件系统体系结构1.C/S架构C/S结构即客户端/服务器(Client/Server),例如QQ;需要编写服务器端程序,以及客户端程序,例如我们安装的就是QQ的客户端程序;缺点:软件更新时需要同时更新客户端和服务器端两端,比较麻烦;优点:安全性比较好。2.B/S架构B/S结构即浏览器/服......
  • Day05-22 多态
    多态即同一方法可以根据发送对象的不同而采用多种不同的行为方式一个对象的实际类型是确定的,但可以指向对象的引用的类型有很多(父类,有关系的类)多态存在的条件有继承关系子类重写父类方法父类引用指向子类对象注意:多态是方法的多态,属性没有多态性。ins......
  • qt 调用JAVA
    Qt调用Java的流程要实现Qt调用Java,需要经过以下步骤:步骤描述1准备Java类2在Qt中配置Java环境3创建Java对象4调用Java方法下面将详细介绍每一步需要做什么,并给出相应的代码示例。步骤一:准备Java类首先,我们需要编写一个Java类,其中包含我们想要Qt调用的......
  • 【后端面经-Java】Java基本概念
    【后端面经-Java】Java基本概念目录【后端面经-Java】Java基本概念1.面向对象和面向过程1.1概念1.2优缺点对比2.C++和Java的区别2.1"去其糟粕"——Java同学,你对C++的这些东西有什么意见?2.2改进之处————Java同学,你的这个论文,,,创新点是什么?面试模拟参考资料1.面向对象和......
  • springboot+javaCV
    实现springboot+javaCV的步骤1.创建SpringBoot项目首先,我们需要创建一个基于SpringBoot的Java项目。可以通过使用SpringInitializer来创建一个基本的项目结构。在创建项目时,我们需要添加合适的依赖项,以便使用JavaCV库。2.添加JavaCV依赖在创建的SpringBoot项目中,我们需要......