上一篇详细介绍了面向对象多态的知识,这篇来说说抽象类与接口。
目录
[1.1 抽象类是什么?](#1.1 抽象类是什么?)
[1.2 抽象类的特点](#1.2 抽象类的特点)
[1.3 抽象类出现的意义](#1.3 抽象类出现的意义)
[1.4 匿名对象](#1.4 匿名对象)
[2.2 接口的特点](#2.2 接口的特点)
[2.3 接口与接口的关系](#2.3 接口与接口的关系)
[2.4 接口出现的意义](#2.4 接口出现的意义)
[2.5 接口的实现案例](#2.5 接口的实现案例)
一、抽象类
1.1 抽象类是什么?
抽象类名字抽象,理解起来不抽象,顾名思义,抽象类 也只是一个特殊点的类,特殊在哪呢,
抽象类 只能被继承使用 ,它本身就像一个模 板,里面的方法 都没有具体实现的内容 ,这些方法叫抽象方法, 在面向对象编程中常用于定义通用的行为规范 ,给子类 提供一个模板。
1.2 抽象类的特点
1.抽象方法 必须包含在抽象类中 ,一个类内有抽象方法,那它一定是抽象类
2.抽象类 中的方法不需要实现
3.抽象类不能被实例化
4.抽象方法不能是 private 的
5.抽象方法不能有 final 和 static 修饰
6.抽象类的子类如果也抽象,子类可以不必去重写方法,直到子类不抽象,所有方法都实现
1.3 抽象类出现的意义
前面也说了抽象类就是一个给子类准备的模板,它的存在意义就是为了让子类去继承他,实现抽象类中的各种方法,可以说抽象类就是为了继承而生的。虽然普通类也都能做到,但是使用抽象类相当于多了一重编译器的校验。
1.4 匿名对象
匿名对象 是指没有被命名的对象 。通常直接创建使用 new + 类名 ,仅在一个地方使用,匿名对象的生命周期很短暂,一旦使用完成就被销毁,无法再被访问。
匿名对象适用于一些简单、临时的操作。
二、接口
2.1接口是什么?
生活中的插座口,usb插口,都是接口
在编程中接口 是一种定义了类或对象应该具备的行为、属性或方法的规范 ,接口就是一种行为的抽象,它定义了一组相关的方法,用来描述一个类的行为能力。通过实现接口,类可以表明它具备了某种特定的行为能力。
简单来说一个接口就是一个功能,比如狗会跑,鸡会跑,那他们可以实现一个IRunning接口,用来表明它们都可以跑,同理 鱼会游泳,人会游泳,就实现ISwiming接口,人还会跑,就再实现IRunning接口,这就是接口。
2.2 接口的特点
1.接口的成员变量默认被public static final 修饰
2.接口中的方法默认都是 public abstract
3.如果抽象中的方法前加上 defualt/static 就可以对方法进行实现了
4.接口也不能实例化
5.类通过 implements 去实现接口
6. 抽象类实现接口后可以不从重写接口的方法,但是它的子类必须实现
7.接口中不能有静态代码块和构造方法
2.3 接口与接口的关系
接口与接口之间可以继承,一个接口可以继承多个接口
2.4 接口出现的意义
通过上面的介绍,我们认识到了接口,接口的意义 就是弥补 了java不能多继承 的缺点,通过不同的接口,表明自己这个类的特性与特定功能。
2.5 接口的实现案例
接口可以做到类能做到大部分事情,包括多态,下面案例展示
三、抽象类和接口的区别
抽象类 和接口 都是 Java 中多态 的常见使用方式. 都需要重点掌握. 同时又要认清两者的区别。
核心区别: 抽象类中 可以包含普通方法 和普通字段 , 这样的普通方法 和字段可以被子类直接使用 (不必重写), 而接口 中 不能包含普通方法 , 子类必须重写所有的抽象方法