继承和接口的区别,抽象类和接口的区别
文章目录
主要需要解决的问题:
继承和接口的区别抽象类和接口之间的区别?什么时候创建抽象类?什么时候创建接口?设计框架时该如何选择? 1. 继承和接口的区别 1.1 面向对象的角度
继承是类的关系,接口实现是对行为的实现。
举个例子:
继承是 人->女人。
接口是 女人 实现 生孩子(有xxxx,怀孕,分娩或下蛋等方法)
1.2 继承和接口使用上的区别示例 2. 抽象类和接口之间的区别 2.1 什么是抽象类和接口
抽象方法 即使用 关键字修饰,仅有声明没有方法体的方法。
public abstract void f(); //没有内容
抽象类 即包含抽象方法的类。
如果一个类包含一个或者多个抽象方法,该类必须被限定为抽象的。抽象类可以不包含抽象方法。
public abstract class BaseActivity {
private final String TAG = this.getClass().getSimpleName(); //抽象类可以有成员
void log(String msg){ //抽象类可以有具体方法
System.out.println(msg);
}
// abstract void initView(); //抽象类也可以没有抽象方法
}
接口 是抽象类的一种特殊形式,使用 修饰。
public interface OnClickListener {
void onClick(View v);
}
2.2 特点与区别 抽象类的特点
抽象类的初衷是“抽象”,即规定这个类“是什么”,具体的实现暂不确定,是不完整的,因此不允许直接创建实例。
接口的特点
Java 为了保证数据安全性是不能多继承的,也就是一个类只有一个父类。
但是接口不同,一个类可以同时实现多个接口,不管这些接口之间有没有关系,所以接口弥补了抽象类不能多继承的缺陷。
接口是抽象类的延伸,它可以定义没有方法体的方法,要求实现者去实现。
区别
跨域不同
设计层次不同