美文网首页
【Java】类、抽象类和接口(Q&A)

【Java】类、抽象类和接口(Q&A)

作者: littlefogcat | 来源:发表于2021-02-04 22:01 被阅读0次

    1. 抽象类和接口的区别是什么?

    接口用interface表示,里面只能定义常量和抽象方法,以及default方法。

    抽象类用abstract class表示,本质上还是一个类。抽象类可以定义常量、静态变量、成员变量,构造方法、静态方法、抽象方法以及普通方法。

    接口内的所有东西默认是public的,且不能改变;抽象类可以设置权限。

    子类继承抽象类使用extend,且只能继承一个抽象类;可以实现多个接口,使用implement。接口只能继承或继承自接口;抽象类可以继承自普通类,也可继承自抽象类,同时可以实现多个接口。

    2. 什么是多态?

    继承自同一个父类的多个子类的同一个方法可以产生不同的结果。

    例如,对于作为父类的抽象类Animal,有一个抽象方法eat()。有两种动物羊Sheep和老虎Tiger,分别继承自Animal

    abstract class Animal{
        abstract void eat();
    }
    class Sheep{
        void eat() { System.out.println("羊吃了一斤草"); }
    }
    class Tiger{
        void eat() { System.out.println("老虎吃了一头羊"); }
    }
    

    对于同一个行为eat,两个子类表现出了不同的结果,那就是羊吃草,老虎吃羊。

    Animal sheep = new Sheep();
    Animal tiger = new Tiger();
    sheep.eat(); // 羊吃草
    tiger.eat(); // 老虎吃羊
    

    相关文章

      网友评论

          本文标题:【Java】类、抽象类和接口(Q&A)

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