抽象类与接口——知识层面及使用层面

导读:本篇文章讲解 抽象类与接口——知识层面及使用层面,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

(一)知识层面

1、抽象类

(1)定义:

用abstract修饰的类,表示一种抽象的类型。
为什么Java中要有这种抽象的类型呢?
举个例子,当你要写一个动物类时,所有动物的年龄等属性的定义方式是确定的,但是“吃”“叫”之类行为的实现方式是不相同的。这时可以将这些行为(方法)定性为抽象,子类继承抽象类之后,再去具体实现这些抽象方法。
说明:一个类中只要存在抽象方法,那么这个类一定是抽象类。

(2)规范:

1、抽象类中既可以有抽象方法,也可以有非抽象方法。
抽象方法:只知道要做一件事情,但是不知道具体怎么做。没有方法体。例如:

public abstract void eat();//动物吃的方法

2、继承抽象类,就要实现抽象类中所有的抽象方法。
3、抽象类不能直接创建对象,必须通过子类创建对象。

2、接口

(1)定义:

接口就是一种公共的规范标准,只要符合规范标准,大家就可以通用。有着扩展功能的作用。

(2)规范:

1、接口中没有变量,只有常量,默认被public static final修饰。方法的默认修饰符为public abstract,java1.8后default修饰的方法,可以定义方法体,例如:

default void sleep() {
}

2、实现接口就必须要实现父接口中的所有抽象方法。
3、接口不能直接new出对象,必须要通过实现类去创建。
4、接口的实现可以多态,与类的继承类似。
5、接口不能实现接口。
6、一个类中可以实现多个接口,中间用“,”隔开。
7、接口可以继承接口,而且可以继承多个接口,中间用“,”隔开。

3、抽象类与接口的区分

抽象类 接口
子类继承(extends)父类 实现类实现(implements)父接口
本质是类,class修饰 本质是接口,Interface修饰

什么时候定义抽象类,什么时候定义接口,一定要回想定义和规范。

(二)使用层面

接口:
Java里的接口像是1个功能包或插件,Java的类实现1个接口就相当于装备上这个功能包或插件,从而具有了这个功能包和插件对应的功能。

参考作用:

  1. 通过接口可以实验不相关类的相同行为。
    例如 java规定所有可以完成自我复制功能的类都必需实现java.lang.Colneable 接口。
    而这个接口是空的,没有任何内容,只是起1个标记作用。

  2. 接口提供了不同对象进行协作的平台。(?)
    例如事件处理。

  3. 接口可以实现多继承, 一定程度上弥补了java类只能单继承的缺点。

  4. 接口是我们了解1个类的功能的重要途径
    例如1个类的定义代码很复杂,而我们可以观察它实现了哪些接口,大概估出这个类的作用。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之家整理,本文链接:https://www.bmabk.com/index.php/post/16907.html

(0)
小半的头像小半

相关推荐

极客之家——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!