首页 > 其他分享 >类,抽象类,接口作为方法的返回值类型 day10

类,抽象类,接口作为方法的返回值类型 day10

时间:2024-08-06 19:38:36浏览次数:9  
标签:fun1 show void public day10 new 返回值 抽象类 class

/*
    返回值类型
        基本类型:
        引用类型:
            类:当你看到一个类作为方法的返回值类型的时候,将来方法内部应该返回该类或该类的子类对象
            抽象类:当你看到一个抽象类作为方法的返回值类型的时候,将来方法内部应该返回继承该抽象类的具体子类对象
            接口:当你看到一个接口作为方法的返回值类型的时候,将来方法内部应该返回实现了该接口的具体子类对象

 */
类
class Student1{
    public void fun1(){
        System.out.println("欢迎大家来到数加学院!");
    }
}

class Demo1{
    public Student1 show(){
        return new Student1();
    }
}

public class StudentDemo1 {
    public static void main(String[] args) {
         Demo1 demo1 =new Demo1();
        Student1 s1 = demo1.show(); // Student1 s1 = new Student1()
        s1.fun1();
        System.out.println("s1: "+s1);

        Student1 s2 = demo1.show();
        System.out.println("s2: "+s2);

    }
}

抽象类
abstract class Demo2{
    public abstract void fun1();
}

class Demo2Zi extends Demo2{
    @Override
    public void fun1() {
        System.out.println("魏一民是阿里巴巴的高级开发程序员");
    }
}

class Student2{
    public Demo2 show(){
        return new Demo2Zi();
    }
}

public class StudentDemo2 {
    public static void main(String[] args) {
        Student2 student2 = new Student2();
        Demo2 d1 = student2.show(); //Demo2 d1 = new Demo2Zi() 抽象多态
        d1.fun1();
    }
}

接口
interface Inter1{
    public abstract void fun1();
}

class Inter1Impl implements Inter1{
    @Override
    public void fun1() {
        System.out.println("昨天南京下冰雹了");
    }
}

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

public class StudentDemo3 {
    public static void main(String[] args) {
        Student3 student3 = new Student3();
        Inter1 i1 = student3.show(); //Inter1 i1 = new Inter1Impl() 接口多态
        i1.fun1();

//        Student3 student4 = new Student3();
//        Inter1 i2 = new Student3().show();
         new Student3()
                .show()
                .fun1(); // 调用方式:链式调用
    }
}

标签:fun1,show,void,public,day10,new,返回值,抽象类,class
From: https://www.cnblogs.com/qiwei-bigdata/p/18345861

相关文章

  • C#:具体类=>抽象类=>接口的进化过程详解
    文章目录简单复习继承与多态具体类抽象类及成员使用语法接口抽象类到接口的进化简单复习继承与多态下面,我用一个交通工具的例子来快速复习一下.1.首先我定义一个基类Vehicle,代表交通工具的总称.里面定义了一个可被重写的成员方法Run.classVehicle{......
  • 抽象类
    抽象类1.抽象类的概念1.什么是抽象“抽象”在编程中通常指的是从具体事物中提取出共同特性或行为,忽略掉细节和差异,形成一个更高层次的、更一般的概念或表示。这种过程允许我们关注于事物的本质,而不是具体的实现细节。2.为什么要抽象Java中的抽象类(AbstractClass)是一种特殊的......
  • C++ 返回值类型推导
    C++返回值类型推导前言C++中获取函数签名可以很简单地用decltype(函数名)来获得,但是这样无法直接提取出返回值类型。有时我们需要获取函数或可调用对象的返回值类型,以便进行后续的操作,在泛型编程中很常用,特别是当不同的参数集的结果类型不同时。头文件<type_traits>:C......
  • kettle从入门到精通 第八十三课 ETL之kettle kettle调用python且接收返回值
    场景:kettle调用python执行脚本,处理之后,再把结果数据流发给下一个步骤。 看到有个qq群里有个小伙伴求助要实现kettle调用python脚本,然后接收python脚本执行的结果,最后将结果传递到下一个步骤。之前的课程里面介绍的是kettle通过shell步骤调用python脚本,没有接收python返回的结果......
  • Python中定义(创建)、调用函数及返回值
    1.定义(创建)函数要调用一个函数,首先要定义它。在Python中使用关键字def来定义一个函数。函数通常由函数名、参数列表以及一系列语句组成的函数体构成的。函数定义的一般格式如下:def函数名(参数列表):函数体例如:defsayhello(): print('hello')最简单的函数:defm......
  • Java SE核心技术——9抽象类
    面向对象编程(Object-OrientedProgramming,简称OOP)和面向过程编程(Procedure-OrientedProgramming)是两种不同的编程范式,它们在设计和实现软件时采用了不同的方法和哲学。一、面向对象编程核心概念:面向对象编程的核心是"对象",对象可以包含数据(属性)和代码(方法)。万物皆对象。封......
  • Android开发 - Presenter抽象类解析
    Presenter是什么职责:Presenter的主要职责是管理视图(通常是用户界面组件)的显示和行为它不处理数据的逻辑,而是专注于如何展示数据在Leanback库中的作用:Leanback库是为AndroidTV设计的一个库,提供了一些特殊的UI组件,比如BrowseFragment。Presenter在L......
  • Java中的抽象类
    目录抽象类抽象类为什么要抽象?抽象类的特征与用法抽象类的好处抽象类、实现类、接口的区别注意抽象类抽象就是从多个事物中将共性的,本质的内容抽取出来。抽象类Java中可以定义没有方法体的方法,该方法的具体实现由子类完成,该方法称为抽象方法,包含抽象方法的类就是抽象类。​......
  • {Python} 有没有办法从函数中“提取”返回值变量并在其他地方使用它,而不调用原始函数?
    第一次在这里发帖。对python来说相对较新,我正在开发一个程序,它基本上是一个随机故事生成器,用于学习语言、发展技能并添加到我的投资组合中。我有一个主文件(最初启动该程序)、一个简介文件(对于介绍部分,获取用户名以及我试图“提取”user_name变量的位置),一个函数文件,其中包......
  • 抽象类,实现(具体)类,接口的区别
    抽象类,实现(具体)类,接口的区别抽象类、具体类和接口是面向对象编程中的三个基本构建块,它们各自有不同的用途和特点。抽象类(AbstractClass)定义:抽象类不能被实例化,它通常用作基类,为其他子类提供一个通用的模板。目的:提供一个通用的框架,包含一些共同的方法和属性,可能包含抽......