返回值类型为引用类型详解

本文详细探讨了Java编程中如何使用抽象类和接口作为函数返回值类型,分析了两种方式的优缺点及其在实际应用中的场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

抽象类作为返回值

package org.wdzl.unit04;

/**
 * 返回值类型:
 *     类:返回该类的对象
 *     抽象类:返回该抽象类子类的对象
 *     接口:
 */
public class ArgsDemo2_2 {
    public static void main(String[] args) {
        PersonDemo2 personDemo2= new PersonDemo2();
        Person2 person = personDemo2.getPerson();
        person.study();
    }
}
abstract class Person2{
    public abstract void study();
}
class PersonDemo2{
    public Person2 getPerson(){
//        Person2 person2 = new Student2();
//        return person2;
        return new Student2();
    }
}
class Student2 extends Person2{

    @Override
    public void study() {
        System.out.println("Good  Study!!!");
    }
}

接口作为返回值

package org.wdzl.unit04;
/**
 * 返回值类型:
 *     类:返回该类的对象
 *     抽象类:返回该抽象类子类的对象
 *     接口:返回该接口的实现类
 */
public class ArgsDemo3_2 {
    public static void main(String[] args) {
        Teacher1 teacher1 = new Teacher1();
        ExtendMethod1 method = teacher1.getMethod();
        method.cook();
    }
}
interface ExtendMethod1{
    public abstract void cook();
}
class TeacherDemo1 implements ExtendMethod1{

    @Override
    public void cook() {
        System.out.println("做饭");
    }
}
class Teacher1 {
    public ExtendMethod1 getMethod(){
//        ExtendMethod1 extendMethod1 = new TeacherDemo1();
//        return extendMethod1;
        return new TeacherDemo1();
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值