Java中的对象、类、抽象类、接口的理解

更好阅读体验:Java中的对象、类、抽象类、接口的理解

1.对象

对象是个具体的东西,有着明确的属性特征和行为特征。

例如:你手上牵着的女朋友或男朋友就是个具体的对象。

如图中的苏格兰折耳猫,特征是耳朵向下呈折叠状,有着具体的颜色(你看到的颜色),并且和其他猫科动物有着共同的基本特征。

2.类

类是个抽象的东西,有着一些基本属性和行为。

例如:你的对象是某类人(男人、女人等),但具体是哪个就不知道了,因为Ta还没出现(还没实例化)。

以下三个都是同一类猫,统称为苏格兰折耳猫,特征是耳朵向下呈折叠状,会有先天骨科疾病,进而影响运动能力,时常用坐立的姿势来缓解痛苦,但和其他猫科动物有着共同的基本特征。这三个猫都有着相同的属性(折耳,有病等),也有着不同的属性(肤色等),但都是同一类猫,统称为苏格兰折耳猫。

  

类和对象的关系

类是对象的抽象,对象是类的具体实现。

如:我们在工作中获取经验,为了传授经验,前人把经验抽象为理论,再通过理论传授知识给后人,后人获取到知识后需要通过实践来巩固知识。

经验--抽象-->理论,理论--实践-->经验;

对象--抽象-->类, 类--实例化-->对象。

抽象的过程相对于设计,实例化的过程相对于应用。

3.抽象类

抽象类是对类的进一步抽象。其实普通类也可以实现抽象类的功能,但抽象类可以做到强制不能实例化,只能通过继承的方式传递属性和方法,并且需要实现抽象方法。

如:把猫科动物定义为抽象类,不同的某一类猫的名称都不相同,需要继承重写猫类名称(如苏格兰折耳猫类)。

对象、类和抽象类关系图

4.接口

接口是某个事物对外提供的一些功能的说明,是一个规范,类似于硬件上面的接口。

例如:猫和狗都会发出声音(说话),一般把这类功能封装为接口,然后通过实现接口便可以获得该功能。

抽象类和接口

a.抽象类和接口都是用来抽象具体对象的,但是接口的抽象级别最高;

​b.抽象类可以有具体的方法和属性,  接口只能有抽象方法和常量(接口后来允许有具体方法);

c.抽象类主要用来抽象类别,接口主要用来抽象功能(只能使用常量,一般定义公共固定属性);

d.抽象类实现接口时,接口的方法在抽象类中可以被实现也可以不被实现,而普通实现接口必须实现所有接口方法。

「何时使用抽象类或接口」

当你关注一个事物的「本质」的时候,一般用「抽象类」
当你关注一个事物的「功能」的时候,一般用「接口」

「例子中四者关系图」

 

图片

posted @ 2022-01-05 21:50  渊渟岳  阅读(254)  评论(0编辑  收藏  举报