首页 > 编程语言 >java 三大特性之多态

java 三大特性之多态

时间:2024-05-27 13:32:47浏览次数:23  
标签:makeSound java 子类 void 多态 Dog Animal 三大

多态

多态就是基于继承条件下,具有对象多态(一个人可以是儿子,可以是父亲等),行为多态(都可以跑,但跑的有快有慢)。

特点

1.多态存在方法重写

2.多态编译看左边,运行看右边

3.变量没有多态性

4.多态下不能使用子类的独有功能

好处

多态可以使程序有良好的扩展,并可以对所有类的对象进行通用处理。

  • 1. 消除类型之间的耦合关系
  • 2. 可替换性
  • 3. 可扩充性
  • 4. 接口性
  • 5. 灵活性
  • 6. 简化性

多态存在的三个必要条件

  • 继承
  • 重写
  • 父类引用指向子类对象:Animal myDog = new Dog()
    //创建一个父类Animal
class Animal {  
    void makeSound() {  
        System.out.println("The animal makes a sound");  
    }  
}  
    //创建一个子类Dog继承Animal并重写方法makeSound
class Dog extends Animal {  
    @Override  
    void makeSound() {  
        System.out.println("The dog barks");  
    }  
}  
  
class Cat extends Animal {
@Override  
    void makeSound() {  
        System.out.println("The cat barks"); 
}
  //多态代码耦合降低,可以将Dog对象直接换为Cat对象
public class PolymorphismExample {  
    public static void main(String[] args) {  
        Animal myDog = new Dog(); // 父类引用指向子类对象  
        myDog.makeSound(); // 输出: The dog barks  
    }  
}

myDog.makeSound()调用的是子类的方法

 

标签:makeSound,java,子类,void,多态,Dog,Animal,三大
From: https://blog.csdn.net/liuyangzhengwei/article/details/139220890

相关文章

  • java中的类加载器
    类加载器(ClassLoader)是Java虚拟机(JVM)的一部分,它负责将类文件(.class)加载到内存中,并在运行时为应用程序提供类的定义。类加载器在Java中起着至关重要的作用,因为它们允许Java应用程序在运行时动态加载类,这对于大型和复杂的应用程序尤为重要。本文将深入探讨Java中的类加载器,讨论它......
  • Java学习【面向对象综合练习——实现图书管理系统】
    Java学习【面向对象综合练习——实现图书管理系统】前期效果图书的创建用户的创建操作的实现完善操作显示图书查找图书新增图书借阅图书归还图书删除图书前期效果用户分为普通用户和管理员,登录进系统之后可以对图书进行一系列操作,此时我们要明白,对图书的操作是通过......
  • Java常见流的分类及简单讲解
    目录一、梳理总结一 1.字节流:2.字符流:二、梳理总结二什么是IO流字符流与字节流的关系缓冲流BufferedReader/BufferedWriter,BufferedInputStream/BufferedOutputStream一、梳理总结一 流在Java中是指计算中流动的缓冲区。从外部设备流向中央处理器的数据流成为......
  • Java语言程序设计1 第二章:变量、数据类型、运算符、表达式
    一、变量1.概念:        计算机中的一块内存空间,存储数据的基本单元2.变量的组成部分:        数据类型、变量名、数据3.语法:        (1)先声明,再赋值:       ·数据类型变量名;//声明                变量......
  • java 实现递归方法
    递归是一种通过调用自身的函数来解决问题的方法。在Java中,编写递归可以按照以下步骤进行:确定基本情况:首先确定递归函数的基本情况,即递归终止条件。通常,这是一个简单的情况,无需进一步递归调用即可解决。定义递归方法:编写一个方法来解决问题,并在方法中判断是否需要进行递归调......
  • Java涉及的运算符
    Java涉及的运算符有以下几种:算术运算符:用于进行基本的数学运算,包括加法(+)、减法(-)、乘法(*)、除法(/)、取余(%)等。赋值运算符:用于将一个值赋给变量,包括简单赋值(=)、加法赋值(+=)、减法赋值(-=)、乘法赋值(*=)、除法赋值(/=)、取余赋值(%=)等。关系运算符:用于比较两个值之间的关系,返回一个布......
  • java 数组的常见操作
    在Java中,数组是一种特殊的对象,用于存储相同类型的多个元素。以下是一些常见的数组操作:声明数组:使用以下语法声明一个数组,其中type是数组元素的数据类型,name是数组的名称。type[]name;例如,声明一个整数数组:int[]numbers;创建数组:使用关键字new和数组的长度来......
  • javaEE—图书管理系统(基础代码版)
                           前言:本篇博客是集合了javaEE所学的知识构建的一个基础框架,讲述着面向对象的过程是如何做到多对象交互协作完成框架的构建的。利用了数组,接口,类和对象,抽象类,Object类等知识来完成。后续会加入数据库,网页......
  • 计算机毕业设计springboot+vue学生档案学籍信息管理系统java
    本文所设计的学籍系统的设计与实现拥有前端和后端,前端使用Vue.js框架和创建,后端使用Springboot框架创建,开发语言采用Java,使用Mysql数据库对后台数据进行存储。将IDEA作为主要的开发工具。接着进行系统的需求分析、功能设计、数据库设计,最后进行编码实现。技术栈ide工具:IDEA......
  • Java 8 中Stream用法
    Stream是Java8新增的接口,Stream可以认为是一个高级版本的Iterator。废话不多说直接上代码 packagecom.example.demo;importorg.junit.jupiter.api.Test;importorg.springframework.boot.test.context.SpringBootTest;importjava.util.Arrays;importjava.util.L......