• 面向对象编程的三大特征: 封装、继承、多态


    一、封装:隐藏某个对象的与其基本特性没有很大关系的所有详细信息的过程。

    通过访问符实现

    private(本类私有)、public(所有类可以共享)、protected(保护-本类和其子类可以共享)、internal(同一个项目共享)

    二、继承:

     1。 在类中存在4中关系:继承关系、组合关系、利用关系、实例化关系

      如: 驾驶员  汽车    宝马轿车   轮胎  我的宝马轿车

    2。一个类可以将其属性和方法派生给其他类,该类叫基类(父类/超类),派生出的类叫派生类(子类)

    3。 基类中的哪些属性和方法可以被派生?

    4。构造函数的调用顺序:先调用基类的构造函数再子类的构造函数

    抽象基类:当基类中的某个函数函数体无法实现时声明称抽象函数,

    抽象函数语法:

    访问符  abstract 返回类型 函数名(参数);//没有函数体

    当类中的某个函数为抽象函数时,该类必须是抽象的,不能创建抽象类的实例

    抽象函数在子类中必须实现函数体

    子类中实现时:

    访问符  override 返回类型 函数名(参数)

    {...}

    5.虚函数:

    如果基类的中的某个函数允许子类重写该函数的功能,则该函数应该声明为虚函数

    属性、方法、函数都可以声明为virtual

    成员变量和静态函数、构造函数不能声明为virtual

    语法:

    访问符  virtual 返回类型 函数名(参数)

    {...}

    在子类中重写时:

    访问符  override 返回类型 函数名(参数)

    {...}

    继承的好处:

    1。重用代码

    2。统一的接口

    3。容易维护

    三、多态—静态多态和动态多态

    1。静态多态:静态多态指一个实体,它同时存在于各种形式中.通过函数重载实现

    函数重载是为类中的两个或多个函数使用同一名字的过程

    函数重载的条件:

    函数名相同的函数必须满足:函数的参数数量不同 或 参数类型不同 或参数顺序不同

            

    int sum(int a,float b)

    int sum(int a,int b,int c)

    float sum(float a,float b)

    void sum(float a,int b)

    double add(double a,double b)

    2.动态多态

    动态多态中,函数执行的决定是在运行时进行的

    C#使用两种方法来实现动态多态:抽象类和  虚函数

    class A

    {

       private int a1;

       protected  int a2;

       public A(int a1,int a2)

       {

          this.a1=a1;

          this.a2=a2;

       }

       public virtual void Display()

    {

        Console.WriteLine("a1={0},a2={1}",a1,a2);

    }

    }

    class B:A

    {

       private int b1;

       public B(int a):base(0,a)

       {  }

       public B(int a2,int b):base(0,a2)

       public  override void Display()

    {

        base.Display();

        Console.WriteLine("b1={0}",b1);

    }

    }

    A  a=new A();

    a.Display();

    a=new B(10);

    a.Display();

    四、接口

    接口在你想让后面的类都遵守标准的函数结构的时候被使用,这里类将实现功能

    接口定义属性、方法和事件,它们被称为接口的成员。

    interface关键字声明接口。

    接口成员总是公有的。

    你可以仅在接口中声明方法、函数和属性。你不能在接口中声明变量。

    接口声明方法,它被类实现。类可以从单个类继承但可以实现多个接口。

    多个无关的类可以实现同一个接口

    捕获无关联类的相似性,而无须加强类关系

    如:

    <<interface>>

    Runner

    +start()

    +run()

    +stop()

    Person

    +start()

    +run()

    +stop()

    +dance()

    Car

    +start()

    +run()

    +stop()

    +fillFuel()

    +crack()

    Bird

    +start()

    +run()

    +stop()

    +fly()

    /*
    以上内容为本人业余时间整理,部分内容来源网络,如有错误欢迎各位批评指正。


    */
  • 相关阅读:
    Android打包key密码丢失找回
    Java 操作 elasticsearch 报错(1)
    Linux Hbase1.2.6 安装及使用(1)
    JAVA WEB 作用域之间的区别
    JSTL 与 EL
    HTML CSS 常用单词
    java
    CentOS 7 MySQL 5.7 主从设置
    VMware安装CentOS7后配置静态IP
    MySQL explain,type分析(转)
  • 原文地址:https://www.cnblogs.com/Lin267307031/p/2862637.html
Copyright © 2020-2023  润新知