首页 > 其他分享 >多态中的返回值类型

多态中的返回值类型

时间:2024-09-26 15:12:20浏览次数:1  
标签:对象 void 多态 public 一个 类型 返回值 class

在之前我们学习过的返回值类型有两大类:
1.基本数据类型:byte,short,int,long,float,double,char,boolean
2.引用数据类型:类(String也属于类),数组,接口
当返回值是一个基本数据类型的时候,我们返回的是一个具体的值或者变量,或者是布尔值
我们这里不讲基本数据类型的返回值
如果一个方法中定义的是一个引用数据类型的时候返回的是一个该类的对象或者是该类的子类对象
1.当一个普通的类作为一个方法的返回值类型时:返回值要是一个类的对象名

class Student{
    public void fu(){
        System.out.println("好好学习,天天向上");
    }
}

class StudentDemo1 {
    public Student funzi(){  //用父类类名作为返回值类型,其返回的值必须是一个对象,这里返回的是一个父类的对象
        return new Student();
    }
}

public class Demo2 {
    public static void main(String[] args) {
        new StudentDemo1().funzi().fu(); //定义一个类对象调用其中的方法,并且返回一个父类对象再进行调用父类的方法

    }
}

2.当一个抽象类名作为一个返回值类型的时:返回值要是一个父类的子类对象

//将一个抽象类名作为返回值类型
abstract class Student2{
    public abstract void fu1();
}
class StudentZi extends Student2{
    public void fu1(){
        System.out.println("我想成为一个富翁");
    }
}
class StudentDemo2{
    public Student2 funzi1(){
        return new StudentZi();
    }
}
public class Demo2 {
    public static void main(String[] args) {
        new StudentDemo2().funzi1().fu1(); //定义一个类对象(该类中有一个方法是以抽象类名为返回值类型的),
        // 调用该类里面的方法,并返回一个子类(该子类是具体继承了抽象类的子类)的对象,再调用返回对象中的方法,最后输出为:我想成为一个富翁
    }
}

3.当一个接口类名作为返回值类型的时候:返回值要是一个实现接口的具体类的对象

//定义一个接口,将接口名当做一个方法的返回值类型,这时候返回的值为该接口具体实现的类的对象

interface Inter1{
    public abstract void fun2();
}
class Student3 implements Inter1{
    public void fun2(){
        System.out.println("我想成为亿万富翁");
    }
}

class StudentDemo3{
    public Inter1 show(){
        return new Student3();
    }
}

public class Demo2 {
    public static void main(String[] args) {
        new StudentDemo3().show().fun2(); //定义一个类对象(该类中有一个方法是以接口名为返回值类型的),
        // 调用该类里面的方法,并返回一个子类的对象(该类是具体实现了接口的类),再调用该具体实现类中的方法
    }
}

标签:对象,void,多态,public,一个,类型,返回值,class
From: https://www.cnblogs.com/ndmtzwdx/p/18433310

相关文章

  • 微软Win11新功能曝光!任务管理器显示SSD类型
    微软在最新的Windows11Beta版本22635.4225中,引入了一项新功能,任务管理器现在能够显示固态硬盘(SSD)的具体类型。此前,Windows11的任务管理器仅能识别硬盘是SSD还是机械硬盘(HDD),而更新后,用户可以更详细地了解自己的SSD是采用SATA、NVMe或其他接口类型。这项功能目前处于隐藏状态,微......
  • JavaScript有哪些数据类型?
    JavaScript共有八种数据类型,分别是Undefined、Null、Boolean、Number、String、Object、Symbol、BigInt。Symbol和BigInt其中Symbol和BigInt是ES6+(ECMAScript2015+)中新增的数据类型:Symbol可以理解为一个独特的标识符。想象一下,你有一把独一无二的钥匙,这把钥匙就是S......
  • celery执行异步任务并调用返回值
    @shared_task(queue='tool_invoke')deftool_invoke_task_queue(type:str,data:Union[bytes,str],path:str=None):bucket='tools'try:iftype=='image':file=download_and_convert_to_filesto......
  • 基本数据类型怎么转化
    在编程语言中,基本数据类型的转换通常可以分为自动类型转换(隐式类型转换)和强制类型转换(显式类型转换)。一、自动类型转换自动类型转换是在满足一定条件下,由编程语言自动进行的类型转换,无需程序员显式地指定。转换规则:转换通常是从低精度数据类型向高精度数据类型进行。例如,从较......
  • java基本数据类型
    1、整数数据类型byte:1个字节,8位,256种状态,取值范围为【-128,127】short:2个字节,16位,65536种状态,取值范围为【-32768,32767】int:4个字节,32位,整数类型默认是int类型,取值范围约21亿long:8个字节,64位,long类型表示long类型常量,要加L或者l,建议加L2、小数数据类型float:4个字节,32位,单......
  • 第一章:COMTRADE 四种文件类型概述
    第一章:COMTRADE四种文件类型概述推荐一款COMTRADE录波文件|可视化工具|电能质量查看软件官网地址:COMTRADEChart概述每个COMTRADE记录包括多达四个相关联的文件,这四个文件各自包含不同的信息,这四个文件是:头文件配置文件数据文件信息文件每一次记录的四个文件......
  • C++ 修饰符类型
    C++中的类型限定符const实例volatile实例mutable实例static实例register实例C++允许在 char、int和double 数据类型前放置修饰符。修饰符是用于改变变量类型的行为的关键字,它更能满足各种情境的需求。下面列出了数据类型修饰符:signed:表示变量可以存储......
  • 06 函数返回值
    6、函数返回值P93deffunc(arg):#....return9#返回值为9默认:returnNoneval=func('adsfadsf')#1.让用户输入一段字符串,计算字符串中有多少A字符的个数。有多少个就在文件a.txt中写多少个“李邵奇”。defget_char_count(data):sum_counter=0......
  • TS系列(2):类型声明、类型推断和类型总览
    你好,我是沐爸,欢迎点赞、收藏、评论和关注。昨天分享了 TS系列(1):TS是什么?如何使用?今天咱们接着上回继续唠。四、类型声明使用:来对变量或函数形参,进行类型声明:leta:string//变量a只能存储字符串letb:number//变量b只能存储数值letc:boolean//变量c只能存......
  • 0924-25,QT的数据类型,实现一个井字棋和计算器(只输入)
    day-01#include"mainwindow.h"#include<stdio.h>#include<iostream>#include<QApplication>#include<QDebug>#include<QPoint>#include<QLine>intmain(intargc,char*argv[]){QApplicationa(argc,......