zoukankan      html  css  js  c++  java
  • Java中的对象、类、抽象类、接口的理解

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

    1.对象

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

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

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

    2.类

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

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

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

      

    类和对象的关系

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

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

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

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

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

    3.抽象类

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

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

    对象、类和抽象类关系图

    4.接口

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

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

    抽象类和接口

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

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

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

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

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

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

    「例子中四者关系图」

    图片

  • 相关阅读:
    [转]HSPICE 使用流程
    [转]到底怎么样才叫看书?——上篇
    js弹出层
    mvc自定义扩展控件
    yield 关键字
    mvc学习地址
    C# 将List中的数据导入csv文件中
    Asp.net 下载文件(弹出对话框的形式)
    Asp.net中用Jquery实现Ajax回调后台方法
    SharePoint中获取当前登录的用户名
  • 原文地址:https://www.cnblogs.com/dennyLee2025/p/15769016.html
Copyright © 2011-2022 走看看