精华内容
下载资源
问答
  • 基类和派生类

    2019-07-28 19:11:56
    1.什么是基类?  在面向对象设计中,被定义为包含所有实体共性的class类型,被称为“基类”。-百度百科  简单理解,即父类(相对派生类) ...基类和派生类反映了类与类的继承关系,是相对而言的。基类...

    1.什么是基类?
      在面向对象设计中,被定义为包含所有实体共性的class类型,被称为“基类”。-百度百科
      简单理解,即父类(相对派生类)
    2.什么是派生类?
      利用继承机制,新的类可以从已有的类中派生。那些用于派生的类称为这些特别派生出的类的“基类”。
      简单理解,即子类(相对基类)
    3.两者关联
      基类和派生类是一个相对的关系。基类和派生类反映了类与类的继承关系,是相对而言的。基类又称父类,是被派生类继承的类。派生类又称子类,是从一个已有类的基础上创建的新类,新类包含基类的所有成员,并且还添加了自己的成员。
    4.实际例子
      假设有两个类A和B,A和B都需要实现一个打印的功能,原始的做法是A写一个打印函数,B也写一个打印函数。两个类还好可以写,但多了就特别麻烦。这个时候我们就可以写一个类C,C里面写一个打印函数。A和B分别继承C,这样A和B就不要写打印函数了。这样即节省了代码,又优化了结构。
      上面的情况,C是A和B的基类,A和B是C的派生类。

    展开全文
  • C++基类和派生类

    千次阅读 2016-10-11 19:13:27
    基类和派生类关系 任何一个类都有可以派生出上个新类,派生类也可以再派生出新类,因此,基类和派生类是相对而言的。一个基类可以是另一个基类的派生类,这样便形成了复杂的继承结构,出现了类的层次。一个基类...
    .基类和派生类关系 
    任何一个类都有可以派生出上个新类,派生类也可以再派生出新类,因此,基类和派生类是相对而言的。一个基类可以是另一个基类的派生类,这样便形成了复杂的继承结构,出现了类的层次。一个基类派生出一个派生类,它又做另一个派生类的基类,则原来基类为该派生类的间接基类。

    基类与派生类之间的关系可以有如下几种描述:

    1 派生类是基类的具体化
    类的层次通常反映了客观世界中某种真实的模型。例如,定义输入设备为基类,而键盘、鼠标器和数字化板将是派生类,它们关系如图6-3所示,在这种情况下,不难看出:基类是对若于个派生类的抽象,而派生类是基类的具体化。基类抽取了它的派生类的公共牲,而派生类通过增加行为将抽象类变为某种有用的类型。

    2 派生类是基类定义的延续
    先定义一个抽象基类,该基类中有些操作并未实现。然后定义非抽象的派生类,实现抽象基类中定义的操作。例如,虚函数就属此类情况。这时,派生类是抽象的基类的实现,即可看成是基类定义的延续。这也是派生类的一种常用的方法。

    3 派生类是基类的组合
    在多继承时,一个派生类有多于一个的基类,这时派生类将是所有基类行为的组合。如上述派生类风扇台灯类就是基类风扇类和台灯类的组合。

    例题6-1
    下面定义了一个关于交通工具的类
     class vehicle
     {
      int wheels; //轮子数
      float weight; //重量
      public:
      void initialize(int in_wheels, float in_weight);
      int get_wheels( ) {return wheels;}
      float get_weight( ) {return weight;}
      float wheel_loading( ) {return weight/wheels;}
     };
      如果要再定义一个小轿车的类和一个卡车的类,如何实现呢?这里我们就要用到面向对象程序设计的另一个机制--继承。现实世界的物质多种多样,但许多物质都存在着层次关系,这种层次结构是我们找到了描述事物的解决方法。
    下面通过继承来派生出小汽车和卡车的类。
     //小汽车的类
     class car : public vehicle
     {
      int passenger_load; //载客数
      public:
      void initialize(int in_wheels, float in_weight, int people = 4);
      int passengers( ) {return passenger_load;}
     };
     //卡车的类
     class truck : public vehicle
     {
      int passenger_load; //载客数
      float payload; //有效负载
      public:
      void init_truck(int how_many = 2, float max_load = 24000.0);
      float efficiency( ); //马力
      int passengers( ) {return passenger_load;}
     };
      说明:上面通过继承从类vehicle中派生出了car和truck两个类。我们把vehicle称为基类,把car和truck称为派生类或子类
    展开全文
  • primer C++笔记 基类和派生类 成员函数和继承 派生类中的虚函数 继承与静态成员 防止继承的发生 不存在从基类相派生类的隐式类型转换 bulkde的Bulk_quote部分被切掉了

    primer C++笔记

    基类和派生类

    在这里插入图片描述
    在这里插入图片描述
    成员函数和继承
    在这里插入图片描述
    在这里插入图片描述
    派生类中的虚函数

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    继承与静态成员
    在这里插入图片描述
    防止继承的发生
    在这里插入图片描述
    不存在从基类相派生类的隐式类型转换

    在这里插入图片描述
    bulkde的Bulk_quote部分被切掉了
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • C#基类和派生类

    2016-06-20 09:38:00
    C#基类和派生类 1.基类和派生类的一些基本概念 class B : A{} A是基类,B是派生类. 一个类最多只允许从一个类中派生. class C : B{} B还可以充当C的派生类 继承总是隐式为public的,System.Object是...
    C#基类和派生类
    1.基类和派生类的一些基本概念
    class B : A{}
    A是基类,B是派生类.
    一个类最多只允许从一个类中派生.
    class C : B{}
    B还可以充当C的派生类
    继承总是隐式为public的,System.Object是所有类的根
    编译器会把你的类悄悄的编译成 class A : System.Object{}
    2.调用基类的构造函数        
    class B : A
    {
    public B(string sqlstr) : base(sqlstr)
    {}
    }
    3基类派生类对象之间的关系
    class A{}
    class B : A {}
    class C: A {}
    B b = new B();
    C c = b;  //这样写是错误地,因为类型不同
    A a = b; //这样写是正确的,但是一定要注意:
    这样做有一个明显的限制 a 对象只能访问基类中的成员不能访问派生类中的成员
    这就是为什么C#完全面向对象的原因,因为C#中所有的东西都继承自System.Object,任何东西都能赋给一个object变量
    4.方法的隐藏
    如果一个基类有n个方法和n个派生类,这n个派生类里又分别有n个方法.你想过会出现什么问题吗?对!就是会遇到 完全一样签名的方法(方法名\参数的数量\类型完全一样) 如果出现这样的情况,在编译过程中将收到一个警告,不要惊慌,仅仅是警告而已,不会影响编译的过程.

    但是你应该认真的对待这个警告,如果派生类的一个对象将调用基类的一个方法,然而这个方法又在这个派生类里有相同签名的方法!那编译器该怎么办?
    我可以负责任的告诉你(呵呵):
    对象调用的是派生类里的方法,
    这种现象在微软官方叫 方法的隐藏,

    如果你不想看到那个警告,可以在派生类中与基类同签名的方法前面加个new关键字,告诉编译器:我会为我造成的结果负责,不要警告我!注意这个关键字只是起个屏蔽警告的作用,你明白我的意思吗?(派生类的对象照样还是不能调用基类中同签名的方法,呵呵,还是再补一句吧,)
    5.方法的覆盖
    先看个例子:

    class nvren
    ...{
    public virtual string leixing()
    ...{return "这是个女人";}
    }
    class meinv : nvren
    ...{
    public override string leixing()
    ...{return "这是个美女";}
    }
    class weizhi : nvren
    ...{
    ...............//这里并没有任何覆盖原方法的方法
    }
    nvren a = new nvren();
    meinv b = new meinv();
    weizhi c = new weizhi();
    Console.WriteLine(a.leixing());
    Console.WriteLine(b.leixing());
    Console.WriteLine(c.leixing());

    程序很简单(原谅我用了中文拼音,我知道你看了很多国外的程序,肯定腻了)
    当调用第三个WriteLine时,程序输出了"这是个女人",现在不用我解释你也该明白了.
    这种同一个语句调用不同方法的现象称为多态性(面向对象的一大特性啊!)
    使用virtul和override一定要注意:
    (1)两个方法必签名相同!
    (2)两个方法均不能是private方法,且必须有相同的可访问性!
    (3)不要试图override没有virtual的方法!
    (4)不要试图不用override就覆盖基类的virtual方法(那就成了方法的隐藏了)!

    在给你个小窍门:
    一个override方法将隐式的成为virtual方法,他本身可在未来的一个派生类里被覆盖(点到为止,不要让我写例子给你)

    这篇小文到次也该结束了,但我还想再提两句
    1.派生类可以访问一个基类的protected成员
    2.建议保持字段为private. ( 因为面向对象强调封装,而public破坏了封装性,private也会在某些时候破坏封装性,你应该知道是哪些时候.呵呵)

    转载于:https://my.oschina.net/u/158055/blog/694573

    展开全文
  • Java基类和派生类

    万次阅读 2016-01-12 16:17:56
    Java基类和派生类
  • C++ 基类和派生类

    2014-08-01 17:29:15
    转自C++ 基类和派生类 本讲讨论基类和派生类的基本概念。  通过继承机制,可以利用已有的数据类型来定义新的数据类型。所定义的新的数据类型不仅拥有新定义的成员,而且还同时拥有旧的成员。我们称已存在的...
  • 基类和派生类对象赋值转换 派生类对象可以赋值给基类的对象/基类的指针/基类的引用。这里有个 形象的说法叫切片或者切割。寓意把派生类中父类那部分切来赋值过去 基类不能赋值给派生类对象 基类的指针可以通过强制...
  • 基类和派生类之间可以相互赋值吗? 先建造一个基类和一个派生类 class A { public: int a; }; class B : public A { public: int b; void display() { cout << a << endl; ...
  • 从外部看来,派生类是一个与基类具有相同接口的新类,或许还会有一些额外的的方法和域 。但继承并不仅仅是类的复用。当创建了一个派生类的对象时,该类包含了一个基类的子对象。这个子对象你用基类直接创建的对象...
  • 基类和派生类对象赋值转换: 派生类对象 可以赋值为 基类的对象 / 基类的指针 / 基类的引用。 基类对象不能赋值给派生类对象。 基类的指针可以通过强制类型转换赋值给派生类的指针,但是必须是基类的指针是指向...
  • JAVA基类和派生类

    2014-05-22 16:02:33
    JAVA基类和派生类 从外部看来,派生类是一个与基类具有相同接口的新类,或许还会有一些额外的的方法和域 。但继承并不仅仅是类的复用。当创建了一个派生类的对象时,该类包含了一个基类的子对象。这个子对象和...
  • //program 14.8.1.cpp 基类和派生类指针互相转换 #include <iostream> using namespace std; class CBase { protected: int n; public: CBase(int i):n(i) { } //constructor_CBase void Print() { ...
  • C# 基类和派生类

    千次阅读 2013-10-04 14:51:37
    基类和派生类的一些基本概念     class B : A{}   A 是基类 ,B 是派生类 .   一个类最多只允许从一个类中派生 .   class C : B{}   B 还可以充当 C 的派生类     继承总是隐式为 public 的 ,System....
  • 基类和派生类的关系

    2016-01-07 21:54:58
    1 基类和派生类之间的特殊关系 假设有基类BaseClassA,它有方法MethodA()和私有方法MethodB();另有派生类InheritClassA继承于BaseClassA,它具有方法MethodC(); (1)派生类对象可以调用基类的方法。前提是该...
  • 基类和派生类内存详解

    千次阅读 2016-08-12 19:09:10
    昨天室友问了我一个c++基类和派生类的内存方面的问题,由于当时不能给出确切的答案,所以今天在VS上面一个个测试了一遍,今记录下来。  问题归结为如下代码: class A { public: A():a(0) { cout!"; } ~A()...
  • C++基类和派生类的赋值

    千次阅读 2015-11-26 15:33:43
    不过这种转换只有在基类和派生类之间才有意义。 由于派生类包含从基类继承的成员,因此可以将派生类的对象赋值给基类对象。 实际上,对象之间的赋值是成员变量的赋值,成员函数不存在赋值问题。在
  • 基类和派生类相关

    2018-12-22 16:37:10
    3.派生类包含基类的所有成员,而且还包括自已特有的成员,派生类和派生类对象访问基类中的成员就像访问自已的成员一样,可以直接使用,不需加任何操作符,但派生类仍然无法访问基类中的私有成员. 4.在C++中派生类...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 16,653
精华内容 6,661
关键字:

基类和派生类