继承抽象类

#ifndef VIRTUAL1

#define VIRTUAL1

#include<iostream>

using namespace std;

class Number{

public:

Number(int i){ x = i; }

virtual void show() = 0;

protected:

int x;

};

class dec_type :public Number{//这里必须公有继承,否则派生类对象做实参无法传递给基类的

//引用对象。

public:

dec_type(int i) :Number(i){}

void show(){

cout << dec << x<<endl;

}

};

class hex_type:public Number{

public:

hex_type(int i) :Number(i){}

void show(){

cout << hex << x<<endl;

}

};

class oct_type :public Number{

public:

oct_type(int i) :Number(i){}

void show(){

cout << oct << x<<endl;

}

};

#endif

#include"vitual1.h"

void fun(Number &n){//抽象类可以做引用

n.show();

}

int main(){

oct_type oc(50);

fun(oc);//派生类对象做参数传给基类的引用

system("pause");

return 0;

}

时间: 2024-08-06 16:02:51

继承抽象类的相关文章

[原创]抽象类实现接口,子类继承抽象类,这三者之间的关系?

①一个类实现一个接口,那么这个类必须实现该接口中的所有方法,因为接口中的方法默认都是 public,abstract类型的,所以实现接口的类都必须重写该接口中的所有方法,比如: interface A { boolean add(); boolean offer1(); boolean offer2(); } public class Test01 implements A{//必须实现A接口中的所有方法 @Override public boolean add() { return false

继承抽象类注意事项

public abstract class PartBase : Space { #region 基本属性 /// <summary> /// 是否复合板 /// </summary> public bool IsCladPart { get; set; } /// <summary> /// 基层密度(kg/L) /// </summary> public double BaseDensity { get; set; } /// <summary&g

Java回顾:用一个Demo来说明继承抽象类和实现接口的简单框架模型

大家都知道,在java应用开发中,要"面向接口编程". 那么什么是接口?接口有什么作用?接口如何使用?我们一起来回顾一下. [声明]欢迎转载,但请保留文章原始出处:http://blog.csdn.net/yelangjueqi/article/details/44701369 1,接口回顾: 1.1,Java中接口的概念 在Java中接口是一种特殊的抽象类,跟一般的抽象类相比,接口里面的所有方法都是抽象方法,接口里面的所有属性都是常量.也就是说,接口里面只有方法定义而没有任何方法实现

java继承————抽象类

抽象类概念 分析事物时,发现了共性内容,就出现向上抽取.会有这样一种特殊情况,就是方法功能声明相同,但方法功能主体不同.那么这时也可以抽取,但只抽取方法声明,不抽取方法主体.那么此方法就是一个抽象方法. 继承方式--关键字 abstract(抽象). 当定义了抽象函数的类也必须被abstract关键字修饰,被abstract关键字修饰的类是抽象类. 抽象类方法的定义 抽象方法定义的格式: 可以有成员变量:但是接口的成员变量必须是final public abstract 返回值类型 方法名(参数

第三章:继承/抽象类/接口

继承 在面向对象编程中,有两种截然不同的继承类型,实现继承和接口继承;C#中不支持多重继承,C#类可以派生自另一个类和任意多的接口 实现继承:表示一个类型派生自一个基类型,它拥有该基类型的所有成员字段和函数,在需要给现有类型添加功能或者许多相关类型共享一组重要的公共功能时.这种类型继承非常有用 接口继承:表示一个类型只继承了函数的签名,没有继承任何的实现代码 实现继承virtual/override /// <summary> /// 基类 /// </summary> class

this/super/static/final/匿名对象/继承/抽象类/访问权限修饰符

1.this关键字的作用     1)调用本类中的属性;     2)调用本类中的构造方法;且只能放首行,且必须留一个构造方法作为出口,即不能递归调用     3)表示当前对象; 2.匿名对象     直接new出来的对象,不创建变量名,且只能使用一次,通常作为方法的参数及返回值使用 3.继承     继承是面向对象的三大特征之一,通过关键字:extends实现,被继承的类称为父类(也称作基类/超类),实现继承的类称为子类(也称作派生类).     特点:     (1)通过继承,子类可以直接访

深入浅出OOP(四): 多态和继承(抽象类)

在本文中,我们讨论OOP中的热点之一:抽象类.抽象类在各个编程语言中概念是一致的,但是C#稍微有些不一样.本文中我们会通过代码来实现抽象类,并一一进行解析. 深入理解OOP(一):多态和继承(初期绑定和编译时多态) 深入理解OOP(二):多态和继承(继承) 深入理解OOP(三):多态和继承(动态绑定和运行时多态) 深入理解OOP(四):多态和继承(C#中的抽象类) 深入理解OOP(五):C#中的访问修饰符(Public/Private/Protected/Internal/Sealed/Cons

Java自学-接口与继承 抽象类

Java 抽象类 在类中声明一个方法,这个方法没有实现体,是一个"空"方法 这样的方法就叫抽象方法,使用修饰符"abstract" 当一个类有抽象方法的时候,该类必须被声明为抽象类 步骤 1 : 抽象类 为Hero增加一个抽象方法 attack,并且把Hero声明为abstract的. APHero,ADHero,ADAPHero是Hero的子类,继承了Hero的属性和方法. 但是各自的攻击手段是不一样的,所以继承Hero类后,这些子类就必须提供不一样的attack

关于java中继承抽象类和实现接口的区别

简单来说,继承就是“是不是”,实现就是“有没有”.(一个大神说的,我觉得很生动很形象 海子大神链接http://www.cnblogs.com/dolphin0520/p/3811437.html)