zoukankan      html  css  js  c++  java
  • 面向对象

    什么是面向对象:

      是一种分析问题的方式,为了增强程序的可扩展性。(是一种思想)

    面向对象的特性是什么:

      1.封装:

      原则:对外开放,对内封闭,对外扩展开放,对内修改封闭,提供一个接口供外部访问。

      类和对象本身就是封装的体现;

      属性封装了字段;

      方法封装了一堆代码;

      类封装了方法;

      程序集封装了类;

      是指把事物的状态和行为封装在类中,使用这个类的人完全不需要知道类的内部是怎么实现的,只需要调用类中的属性或方法,来实现功能。

      2.继承:

      是类与类的关系,是指某个类中要使用另外一个类中的一些属性或方法时,这个类只需继承那个类,这个类就可以使用那个类中所有的属性和方法了,这个类就称为子类,而被继承的那个类称为父类,继承实现代码复用,继承主要是为了体现多态;

      能不能继承私有成员:(存在歧义)

        1>子类继承父类,创建子类对象时,私有成员也被分配了内存空间;

        2>继承只是面向对象的概念,继承的目的是为了子类使用,实现代码重用,体现多态;

        3>即便是继承了但不能访问,所以没有意义;

      

      简单的理解:

        1>子类继承父类;

        2>拥有父类的属性和方法(构造函数是不能继承的,只能在子类中调用父类中的构造函数);

        3>实现代码复用,提高效率;

        4>体现多态;

      3.多态:

        增强程序的可扩展性;

        

        多态的作用:
          把不同的子类对象都当作父类来看,可以屏蔽不同子类对象之间的差异,写出通用的代码,做出通用的编程,以适应需求的不断变化。 
        实现多态的方法:
          1>虚方法;
          2>抽象类;
          3>接口;
        

    什么是对象:

      广义:万事万物都是对象;

      狭义:是具体的,是类的具体实例,拥有属性(特征)和方法(行为);

    什么是类:

      模子,模具,确定对象将会有哪些属性(特征)和方法(行为);

     什么是抽象类:

      用abstract关键字修饰的类;

     抽象类中的抽象成员不能使用private访问修饰符,可以使用其他访问修饰符

      抽象类存在的意义:

      1>抽象类不能被实例化,只能被其他类继承;

      2>继承抽象类的子类必须把抽象类中的所有抽象成员都重写(实现)(除非子类也是抽象类。)

      3>抽象类就是为了重写→多态(代码重用)。

      4>抽象类中可以有实例成员也可以有抽象成员。

    什么时候用虚方法?什么时候用抽象方法?(区别)
     
    1.虚方法:
      1>父类中必须有实现。
      2>子类中可以不重写。
      3>虚方法可以在普通类中。(有虚方法的类是可以(可能)被实例化的。)
     
    2.抽象法:
      1>父类中不能有任何实现。
      2>子类中必须重写(除非:子类也是一个抽象类。)
      3>抽象方法必须在抽象类中。

    什么是接口:

      1> 接口是一种规范,协议,约定遵守某种规范就可以写出通用的代码;

      2>接口是定义了一组具有各种功能的方法,只是一种能力,没有具体的实现。也就所谓的光说不做。

    接口存在的意义:

      1>接口就是为了体现多态,而多态就是为了提高可扩展性,从而提开发高效率,减少成本;

      2>解决了多继承问题;

      3>解决体积庞大;

      4>接口可以多继承;

  • 相关阅读:
    如何在Kubernetes集群动态使用 NAS 持久卷
    如何在Kubernetes集群动态使用 NAS 持久卷
    谷歌浏览器报错Unchecked runtime.lastError: The message port closed before a response was received.。
    优化信息流很麻烦?三招教你轻松搞定
    优化信息流很麻烦?三招教你轻松搞定
    java多线程
    java多线程
    酷狗音乐快速转换MP3格式的方法
    Golang项目部署
    解析HTML、JS与PHP之间的数据传输
  • 原文地址:https://www.cnblogs.com/zlp520/p/3553930.html
Copyright © 2011-2022 走看看