Java零基础进阶篇之面向对象-抽象类与接口的区别

本篇文章讲解的知识点主要围绕面向对象中的抽象类与接口的区别,废话不多说,只分享Java相关的干货!

接口和抽象类的区别?

  1. 接口描述了方法的特征,不给出实现,一方面解决 java 的单继承问题,实现了强大可接插性
  2. 抽象类提供了部分实现,抽象类是不能实例化的,抽象类的存在主要是可以把公共的代码移植到抽象类中
  3. 面向接口编程,而不要面向具体编程(面向抽象编程,而不要面向具体编程)
  4. 优先选择接口(因为继承抽象类后,此类将无法再继承,所以会丧失此类的灵活性)

类之间的关系

1. 泛化关系,类和类之间的继承关系及接口与接口之间的继承关系
Java零基础进阶篇之面向对象-抽象类与接口的区别_第1张图片
2. 实现关系,类对接口的实现
Java零基础进阶篇之面向对象-抽象类与接口的区别_第2张图片
3. 关联关系,类与类之间的连接,一个类可以知道另一个类的属性和方法,在 java 语言中使
用成员变量体现
 
Java零基础进阶篇之面向对象-抽象类与接口的区别_第3张图片
4. 聚合关系,是关联关系的一种,是较强的关联关系,是整体和部分的关系,如:汽车和轮
胎,它与关联关系不同,关联关系的类处在同一个层次上,而聚合关系的类处在不平等的
层次上,一个代表整体,一个代表部分,在 java 语言中使用实例变量体现
 
Java零基础进阶篇之面向对象-抽象类与接口的区别_第4张图片
 
5. 合成关系,是关系的一种,比聚合关系强的关联关系,如:人和四肢,整体对象决定部分
对象的生命周期,部分对象每一时刻只与一个对象发生合成关系,在 java 语言中使用实例
变量体现
Java零基础进阶篇之面向对象-抽象类与接口的区别_第5张图片
6. 依赖关系,依赖关系是比关联关系弱的关系,在 java 语言中体现为返回值,参数,局部变
量和静态方法调用
Java零基础进阶篇之面向对象-抽象类与接口的区别_第6张图片

is-ais-like-ahas-a

  •  Is-a
public class A {
 public void method1() {}
}
public class B extends A {
 public void method1() {}
}
  • is-like-a
public interface I {
 public void method1() ;
}
public class A implements I {
 public void method1() {
 //实现
} }
  • has-a
public class A {
 private B b;

}

public class B {

}

以上就是抽象类与接口的区别相关的知识点了,配套视频教程,正在学习Java的同学们一定要持续关注哦~~

Java零基础进阶视频教程

 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

你可能感兴趣的:(纯干货,Java学习资料,Java学习视频教程,抽象类,java,设计模式,编程语言,接口)