zoukankan      html  css  js  c++  java
  • 1

    7.章 类和集成

    ☆:为重点

    ★:为科普

    △:注

    ▲:术语

    △△:警告

    ●:本章知识点

    ●●:结束本章

    ○:代码

    □:本节知识点

    ■:本节知识点(分)

    ●:7.1类继承

    通过继承我们可以定义一个新类,新类纳入一个已经声明的类并进行扩展。

    □:可以使用一个已经存在的类作为新类哦对基础。已存在的类成为基类(base class),新类成为派生类(derivde class)。派生类成员如下:

    ■:本身声明中的成员:

    ■:基类的成员:

    □:要声明一个派生类,需要在类名后面加入基类规格说明。基类规格说明有冒号和后面跟着用作基类的类名称组成。派生类被描述为直接继承自列出的基类。

    □:派生类扩展的它的基类,因为它包含了基类的成员,加上在它本身声明中新增功能。

    □:派生类不能删除它所继承的任何成员。

    △:例如,下面展示了名为OtherClass的类的声明,它继承名称为SomeCLass的类:

                             基类描述符

                                  ↓

    ○: class OtherClass : SomeClass

    {                          ↑   ↑

    //代码块       冒号 基类

    }

     

    ●●:结束本节

     

    ●:7.2访问继承的成员

    继承的成员可以被访问,就像他们是派生类自己生命的一样(继承的结构有些不同)

    例如,下面的代码声明了类SomeClass和OtherClass。这段代码显示OtherClass。的所个成员都能被无缝地访问,无论它们在基类中声明的还是在派生类中声明的;

    □:Main创建派生类OtherClass的一个对象。

    □:Main中接下来的两行调用基类中的Method1,先是使用基类的Field1,然后是派生类的Field2.

    □:Main中后续的两行调用派生类中的Method2,再次先使用基类的Field1,然后是派生类的Field2.

    ○:Class SomeClass   //基类

    {

    public string Field1="base class field";

             public void Method1(string value) {

    Console.WriteLine("Base class__met1;{0}",value);

             }

    }

    ○: class OtherClass:SomeClass    //派生类

    {

    public string Field2="der class field";

    public void Method2(string value) {

    Console.WriteLine("der class__met2;{0}",value);

             }       

    }

    ○:class program{

    static void Mian(){

     OtherClass oc=new OtherClass();

     oc.Method1(oc.Field1);

     oc.Method1(oc.Field2);

     oc.Method2(oc.Field1);

     oc.Method2(oc.Field2);

                       }

             }

    以上三个代码结果

    ase class__met1; base class field

    ase class__met1; der class__met;

    der class__met2; base class field

    der class__met2; der class__met;

    ●●:结束本节

    ●:7.3所有类都是派生自object类

    △:除了特殊的类object,所有的类都是派生类,即使它们没有基类规格说明。类object是唯一的非派生类,因为它是继承层次结构的基础。

    △:没有基类规格说明的类隐式地直接派生自类object。不加基类规格说明只是指定object为基类的简写。这两个形式是语义等价的。

    ○:class SomeClass{

    //代码块

    }

    ○:class SomeClass:object{

    //代码块

    }

    △:上面的类说明隐式地派生自object类,而下面的则显示派生自object。这两种形式在语义上是等价的。

    ☆:关于类继承的其他重要内容如下。

    □:一个类声明的基类规格说明中只能有一个单独的类。这成为单继承。

    □:虽然类只能直接继承一个基类。但继承的层次没有限制。也就是说,作为基类的类可以派生自另外一个类,而这个类又派生自另一个类,一直下去,直到最终到达object。

    ▲:基类和派生类都是相对的术语。所有的类都是派生类,要么派生自object,要么派生自其它类。所以,通常当我们成为一个类为派生类时,我们的意思是它直接派生自某类而不是object。下图展示了一个简单的类层次结构。在这之后,将不会在图显示object了,因为所有的类最终都派生自它。

     

    ●●:结束本节

  • 相关阅读:
    lintcode-453-将二叉树拆成链表
    qcow2虚拟磁盘映像转化为vmdk
    wiki
    oracle
    mysql配置记录
    consul命令记录
    Prometheus监控elasticsearch集群(以elasticsearch-6.4.2版本为例)
    centos7修改网卡名称为eth0
    linux下将普通用户加入到docker组,使它可以运行docker命令
    CentOS配置history记录每个用户执行过的命令
  • 原文地址:https://www.cnblogs.com/liehuonanjue/p/8261165.html
Copyright © 2011-2022 走看看