请问:C#中 虚基类 等于 抽象类吗?

问题描述

请问大家:(1)在C#中有虚基类吗?(2)如果有和抽象类有什么区别?在项目开发中主要应用在哪些方面?(3)还有虚方法和抽象方法有什么区别?

解决方案

解决方案二:
你可以去www.langsin.com,找抽像类的视频,那里面有介绍
解决方案三:
C#中没有多继承,所以也就没有虚基类了。虚表示可以重写,运行时绑定,抽象表示只有定义没有实现,含义不一样。
解决方案四:
没有虚基类虚方法可以由子类来重写,也可以不重写。抽象方法必须由子类来重写。
解决方案五:
谢谢了
解决方案六:
C#只允许单继承,没有虚基类这一说法。虚方法可以由子类来重写,也可以不重写。抽象方法必须由子类来重写。如果子类没有重写,则需要子类也是抽象类。
解决方案七:
虚心学习!
解决方案八:
C#只允许单继承,没有虚基类这一说法。虚方法可以由子类来重写,也可以不重写。抽象方法必须由子类来重写。如果子类没有重写,则需要子类也是抽象类。补充一点点,子类中可以使用new关键字,修改方法的版本

时间: 2024-07-29 04:33:45

请问:C#中 虚基类 等于 抽象类吗?的相关文章

c++-C++中虚基类中关于内存计算的问题

问题描述 C++中虚基类中关于内存计算的问题 情况一: class D{ public: int a; }; class A:virtual public D{ }; class B :virtual public D{ }; class C:public A,public B{ public: int a1; }; 用sizeof(C)计算出等于16: 情况二: class D{ public: int a; }; class A:public D{ }; class B :public D{

详谈C++中虚基类在派生类中的内存布局_C 语言

今天重温C++的知识,当看到虚基类这点的时候,那时候也没有太过追究,就是知道虚基类是消除了类继承之间的二义性问题而已,可是很是好奇,它是怎么消除的,内存布局是怎么分配的呢?于是就深入研究了一下,具体的原理如下所示: 在C++中,obj是一个类的对象,p是指向obj的指针,该类里面有个数据成员mem,请问obj.mem和p->mem在实现和效率上有什么不同. 答案是:只有一种情况下才有重大差异,该情况必须满足以下3个条件: (1).obj 是一个虚拟继承的派生类的对象 (2).mem是从虚拟基类派

详解C++中基类与派生类的转换以及虚基类_C 语言

C++基类与派生类的转换 在公用继承.私有继承和保护继承中,只有公用继承能较好地保留基类的特征,它保留了除构造函数和析构函数以外的基类所有成员,基类的公用或保护成员的访问权限在派生类中全部都按原样保留下来了,在派生类外可以调用基类的公用成员函数访问基类的私有成员.因此,公用派生类具有基类的全部功能,所有基类能够实现的功能, 公用派生类都能实现.而非公用派生类(私有或保护派生类)不能实现基类的全部功能(例如在派生类外不能调用基类的公用成员函数访问基类的私有成员).因此,只有公用派生类才是基类真正的

虚函数、抽象类及虚基类

虚函数.抽象类及虚基类 虚函数及抽象类: 派生类经常(但不总是)覆盖它继承的虚函数.如果没有覆盖,派生类会直接继承其在基类中的版本. 派生类可以在它覆盖的函数前使用virtual关键字,但不是非得这么做. C++11允许派生类使用override关键字,显式地注明它重写了基类中的某个虚函数. 常见的不能声明为虚函数的有:非成员函数(含友元函数):静态成员函数:构造函数. 1.为什么C++不支持普通函数和友元函数为虚函数? 它们不能被继承. 2.为什么C++不支持构造函数为虚函数? 构造函数不能被

实例讲解C++编程中的虚函数与虚基类_C 语言

虚函数① #include "stdafx.h" #include <iostream> using namespace std; class B0//基类B0声明 { public: void display(){cout<<"B0::display()"<<endl;}//公有成员函数 }; class B1: public B0//公有派生类B1声明 { public: void display(){cout<<

C+++中的基类的虚方法在派生类中设为虚的还是非虚方法好?

问题描述 C+++中的基类的虚方法在派生类中设为虚的还是非虚方法好? //brass.h -- bank account classes#ifndef BRASS_H_#define BRASS_H_#include //brass account classclass Brass{private: std::string fullName; //x姓名 long acctNum; //账号 double balance; //当前结余public: Brass(const std::strin

C++第13周项目3 - 车辆类多重继承中使用虚基类

课程首页地址:http://blog.csdn.net/sxhelijian/article/details/7910565,本周题目链接:http://blog.csdn.net/sxhelijian/article/details/8953304 [项目3]在下面一段类的定义中,自行车类的虚基类为车辆类,机动车类的虚基类也为车辆类,摩托车类的基类为自行车类和机动车类,类之间均为公有继承.(1)根据上面各类间关系的描述,补全下面程序段中空缺的代码(2)实现程序中声明的成员函数,注意相应操作中的

Microsoft .NET 中的基类继承

接口继承 创建抽象类时,请使用关键字 Interface 而不是 Class.为接口命名,然后定义需要子类实现的所有属性和方法.这是因为基类中没有可以实现的属性和方法,它只包含一般数据,而不包含方法.您所创建的只是一个合约,它规定所有使用此接口的子类都必须遵循一定的规则. 1.        现在,请在已创建的项目中添加一个新类. 2.        从 Visual Studio 菜单中,单击 Project(项目),然后单击 Add Class(添加类). 3.        在类中添加以下

c++虚基类二义性的问题

问题描述 c++虚基类二义性的问题 #includeusing namespace std;class A{public: A(int a):x(a){ cout<<""A constructor...""<<x<<endl; } int f(){return ++x;} ~A(){cout<<""destructor A...""<<endl;}private: i