手记

接口和抽象类的使用和对比

Java的抽象体现在抽象和接口两个方面。
一、抽象类
抽象类是对事物的抽象,即对类的抽象,包括属性和方法。abstract修饰符来修饰。包含抽象函数的类称为抽象类。抽象类不能实例化,适用于继承的。抽象类中的抽象方法不用实现,子类必须实现继承的父类的抽象方法。
二、接口
接口是方法的抽象,方法的提供接口,只需要定义定义方法,不需要实现。实现该接口的类必须实现接口中定义的方法。
三、抽象类和接口的区别(形象的例子说明)
飞机和鸟是不同类的事物,但是它们都有一个共性,就是都会飞。那么在设计的时候,可以将飞机设计为一个类Airplane,将鸟设计为一个类Bird,但是不能将 飞行 这个特性也设计为类,因此它只是一个行为特性,并不是对一类事物的抽象描述。此时可以将 飞行 设计为一个接口Fly,包含方法fly( ),然后Airplane和Bird分别根据自己的需要实现Fly这个接口。然后至于有不同种类的飞机,比如战斗机、民用飞机等直接继承Airplane即可,对于鸟也是类似的,不同种类的鸟直接继承Bird类即可。

//接口
public interface FlyGood {
    public abstract void fly();
}
public class TestClass implements FlyGood{
    public void fly(){
        System.out.println("I CAN FLY!");
    }
}
public class Airport implements FlyGood{
    public void fly(){
        System.out.println("I also can fly !");
    }
}
//抽象类
public abstract class FlyGood {
    public abstract void fly();
}
public class Airport extends FlyGood{
    public void fly(){
        System.out.println("I also can fly !");
    }
}

注意:1、一个类可以implements多个接口,但是一个类只能extends一个父类,这也是接口弥补父类的一个优势

13人推荐
随时随地看视频
慕课网APP

热门评论

你是王星辰吗 ??我认识你西安的王星辰

写的真好,很有用哈哈哈哈

接口就摆脱了java的单继承局限。 抽象类:是一个包含抽象方法的类,由构造方法,普通方法,常量,变量组成。由子类来继承抽象类(extends),抽象类可以实现多个接口。抽象类有单继承的局限。 接口:抽象方法和全局变量的集合,由常量,抽象方法组成,由子类实现接口,接口不能继承抽象类,但允许继承多个接口。 两者都是通过对象的多态性产生实例化对象,抽象类和接口都可以使用时,优先选择接口,可避免单继承的局限 一个抽象类中可以包含多个接口,一个接口中可以包含多个抽象类

查看全部评论