接口和抽象类的使用上的区别和选择

    接口与抽象类的使用上的区别和选择
       首先,对于抽象类它的作用主要用于继承和重写,里面可以有普通方法,但在设计上面,通常把其派生类的共有属性和方法抽象出来,其中所有派生类中不变的方法,在抽象类中用普通方法写出来,而所有派生类中变化的方法用抽象方法写出来。

      另外,对于接口主要作用是实现多继承,它也包含抽象方法,但不允许有普通方法,也不允许有构造器,因为它不是类,在设计的时候派生类必须实现接口中所有的所有的抽象方法,否则这个时候就要用抽象类了,当然这个类也可以继承其它的类并实现该接口。

-----------------------------------------------------------------------------------

     

    抽象类的使用案例

      比如飞机大战中FlyingObject这个抽象类,其中包含了step()  、getImage()这两个方法都是不一样的实现方式,所以这里就要用抽象方法,另外,loadImage() 、paintObject()等方法实现上都类似,所以用普通方法。然后派生类再去用super()去调用和重写相关方法。

      接口的使用案例:    

            

-----------------------------------------------------------------------------------

      接口和抽象类的相同点

     都不能在里面创建对象,都可以包含抽象方法,但抽象类也可以不包含抽象方法,但一般都包含。

猜你喜欢

转载自www.cnblogs.com/shijinglu2018/p/10040530.html