美文网首页
抽象类作为方法的返回值

抽象类作为方法的返回值

作者: wangfs | 来源:发表于2018-06-30 22:43 被阅读162次
1.1 定义一个抽象类
package cn.itcast.abstractclass;

public abstract class Animal {
    public abstract void eat();
}
1.2 抽象类的子类
package cn.itcast.abstractclass;

public class Cat extends Animal {

    public void eat() {
        System.out.println("猫在吃鱼");
    }

}
1.3 定义一个类,抽象类作为该类的方法的返回值
package cn.itcast.abstractclass;

public class GetAnimal {
    /*
     * 定义方法,方法返回值是Animal类型
     * 抽象类,抽象类是没有对象的,因此在方法的return后,返回Animal的子类对象
     * */
    
    //此处定义了返回值类型是Animal,后面在做测试类引用的时候,调用此方法时赋值给引用变量,引用变量类型不能是子类类型,除非向下转型
    public Animal getAnimal() { 
        return new Cat();//new Cat()被自动提升为Animal类型,向上转型
    }
}
1.4 定义一个测试类
package cn.itcast.abstractclass;

public class TestReturn {
    public static void main(String[] args) {
        //调用GetAnimal类的方法,getAnimal,返回值是Animal类型
        GetAnimal g = new GetAnimal();
        Animal a = g.getAnimal();//方法的返回值是Animal类型(而不是Cat类),return new Cat()。可看下GetAnimal类中的getAnimal方法的返回值类型
        a.eat();
    }
}

相关文章

  • 14-面向对象

    不同修饰符混合使用细节辨析何时定义变量为成员变量类、抽象类、接口作为方法参数类、抽象类、接口作为方法返回值 1 不...

  • 技术问 - 类、接口、抽象类 参数传递

    类、抽象类、接口作为形式参数时: 类、抽象类、接口作为返回值类型时:

  • 抽象类作为方法的返回值

    1.1 定义一个抽象类 1.2 抽象类的子类 1.3 定义一个类,抽象类作为该类的方法的返回值 1.4 定义一个测试类

  • 形参和返回值

    类名作为形参和返回值 方法的形参是类名,其实需要的是该类的对象;方法的返回值是类名,其实返回的是该类的对象 抽象类...

  • 2020-06-21形参和返回值

    类名作为形参和返回值 方法的形参是类名,其实需要的是该类的对象 方法的返回值是类名,其实返回的是该类的对象 抽象类...

  • 2.2 对象和方法之间的关系

    本小节知识点: 【掌握】对象作为方法的参数 【掌握】对象作为方法的返回值 1.对象作为方法的参数 对象作为方法参数...

  • 接口

    定义接口的关键字:interface 实现接口的关键字:implements 类的方法要有返回值,接口类和抽象类不...

  • 浅谈接口和抽象类

    概念引入 什么是接口?接口是包含一组虚方法的抽象类型,其中每一种方法都有其名称、参数和返回值。接口方法不能包含任何...

  • Java随笔-抽象类与接口的区别

    抽象类 抽象类可以作为父类去继承,但是抽象类本身并不能被实例化,抽象类具备class的全部功能,包括成员变量和方法...

  • instancetype和id区别

    相同点:都可以作为方法的返回值类型 不同点:instancetype只能作为返回值,不能像id那样作为参数inst...

网友评论

      本文标题:抽象类作为方法的返回值

      本文链接:https://www.haomeiwen.com/subject/nvpxuftx.html