C++抽象类的实现

1、什么是抽象类?

答:简单的说,抽象类就是至少有一个纯虚函数的类。

2、抽象类的作用?

答:抽象类的主要作用就是为它所组织的继承层次结构提供一个公共的基类,这样它就具有公有行为的特征,其它派生的类可以从这个公共的基类中继承和实现接口,通过抽象类多态的使用其中的成员函数。

抽象类案例:

#include <iostream>
#include <cstring>
using namespace std ;
//定义一个抽象类
class abstruct
{
	//至少有一个纯虚函数的类称之为抽象类
	public :
		virtual void show() = 0 ;
};

class Dog : public abstruct
{
	public :
		int a , b , c ;
	public :
		int set(int a,int b , int c) ;
		void show();
};

int Dog::set(int a , int b , int c)
{
	this->a = a ;
	this->b = b ;
	this->c = c ;
}

void Dog::show()
{
	cout << this->a << endl ;
	cout << this->b << endl ;
	cout << this->c << endl ;
}

int main(void)
{
	//抽象类指针
	abstruct *ptr ;
	//派生类对象定义
	Dog dog ;
	//派生类对象初始化
	dog.set(100,200,300);
	//使用抽象类指针获取派生类
	ptr = &dog ;
	//使用抽象类指针调用派生类中的虚函数show
	ptr->show();
	return 0 ;
}

运行结果:
100 

200 

300

时间: 2025-01-29 17:12:23

C++抽象类的实现的相关文章

java-Java抽象类中的非抽象方法的方法体为空,子类也没有头给予实现,但却被调用了是什么意思

问题描述 Java抽象类中的非抽象方法的方法体为空,子类也没有头给予实现,但却被调用了是什么意思 读源码的时候关键地方卡住了,在一个方法的结尾把数据作为参数调用了一个抽象类的方法,这个方法不是抽象方法,方法体也是空的,这个抽象类的子类只有一个,而且也没有实现这个方法,那这些数据到底了什么地方呢? 解决方案 实现方法在子类中,多态的概念,父类有这个方法(不是abstract的),所以要写一个空方法,具体实现由子类处理 解决方案二: 子类继承了父类, 不管是否重写父类的方法,都可以调用父类的方法吧

php中抽象类和接口的概念以及区别

本篇文章是对php中抽象类和接口的概念以及区别进行了详细的分析介绍,需要的朋友参考下   复制代码 代码如下: //抽象类的定义: abstract class ku{ //定义一个抽象类 abstract function kx(); ...... } function aa extends ku{ //实现抽象类的方法 function kx(){ echo 'sdsf'; } } //使用方法 $aa=new aa; $aa->kx(); //1.定义一些方法,子类必须完全实现这个抽象中所

Java基础:浅析Java抽象类和接口的比较

abstract class和interface是Java语言中对于抽象类定义进行支持的两种机制,正是由于这两种机制的存在,才赋予了Java强大的面向对象能力.abstract class和interface之间在对于抽象类定义的支持方面具有很大的相似性,甚至可以相互替换,因此很多开发者在进行抽象类定义时对于abstract class和interface的选择显得比较随意.其实,两者之间还是有很大的区别的,对于它们的选择甚至反映出对于问题领域本质的理解.对于设计意图的理解是否正确.合理.本文将

php接口和抽象类使用示例详解

 这篇文章主要介绍了php的接口和抽象类使用示例,并做了详解讲解,需要的朋友可以参考下 一. 抽象类abstract class   1 .抽象类是指在 class 前加了 abstract 关键字且存在抽象方法(在类方法 function 关键字前加了 abstract 关键字)的类.   2 .抽象类不能被直接实例化.抽象类中只定义(或部分实现)子类需要的方法.子类可以通过继承抽象类并通过实现抽象类中的所有抽象方法,使抽象类具体化.   3 .如果子类需要实例化,前提是它实现了抽象类中的所有

Java编程那些事儿68——抽象类和接口(一)

在实际的项目中,整个项目的代码一般可以分为结构代码和逻辑的代码.就像建造房屋时,需要首先搭建整个房屋的结构,然后再细化房屋相关的其它的结构,也像制造汽车时,需要首先制作汽车的框架,然后才是安装配件以及美化等工作.程序项目的实现也遵循同样的道理. 在项目设计时,一个基本的原则就是--"设计和实现相分离".也就是说结构代码和逻辑代码的分离,就像设计汽车时只需要关注汽车的相关参数,而不必过于关心如何实现这些要求的制作.程序设计时也是首先设计项目的结构,而不用过多的关系每个逻辑的代码如何进行实

Java接口和抽象类实例分析

  本文实例讲述了Java的接口和抽象类.分享给大家供大家参考.具体分析如下: 对于面向对象编程来说,抽象是它的一大特征之一.在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类.这两者有太多相似的地方,又有太多不同的地方.很多人在初学的时候会以为它们可以随意互换使用,但是实际则不然.今天我们就一起来学习一下Java中的接口和抽象类. 若有不正之处,请多多谅解并欢迎批评指正,不甚感激. 一.抽象类 在了解抽象类之前,先来了解一下抽象方法.抽象方法是一种特殊的方法:它只有声明,而没有具体

Java中抽象类与接口的区别

  接口和抽象类有好多相同点和类似点,很多人有过这样的疑问:为什么有的地方必须使用接口而不是抽象类,而在另一些地方,又必须使用抽象类而不是接口呢?或者说,在考虑Java类的一般化问题时,很多人会在接口和抽象类之间犹豫不决,甚至随便选择一种. 理解抽象类 abstract class和interface在Java语言中都是用来进行抽象类(本文 中的抽象类并非从abstract class翻译而来,它表示的是一个抽象体,而abstract class为Java语言中用于定义抽象类的一种方法, 请读者

java的抽象类和方法

在我们所有乐器(Instrument)例子中,基础类Instrument内的方法都肯定是"伪"方法.若去调用这些方法,就会出现错误.那是由于Instrument的意图是为从它衍生出去的所有类都创建一个通用接口. 之所以要建立这个通用接口,唯一的原因就是它能为不同的子类型作出不同的表示.它为我们建立了一种基本形式,使我们能定义在所有衍生类里"通用"的一些东西.为阐述这个观念,另一个方法是把Instrument称为"抽象基础类"(简称"抽象

PHP面向对象 抽象类 接口 常量学习

  PHP抽象类的使用和定义   <?php   abstract class A {    public $name;    function fun(){     echo $this->name;    }   abstract function cc($n,$nn=3);  }  class B extends A{    function cc($m,$mm=7){    echo "aaa";    }  }  $b = new B;   ?> PHP面向

《java与模式》笔记-----抽象类和接口

笔记 抽象类和接口 什么是接口:接口就是一些方法特征的集合------接口是对抽象的抽象. 什么是抽象类:抽象类对某具体类型的部分实现------抽象类是对具体的抽象. 方法特征包括:方法的名字.参数的数目.参数的类型.不包括:返回类型.参数名字.和抛出的异常. 接口是类型转换的前提.是动态调用的保证.实现某一接口就完成了类型的转换(多重继承):动态调用只关心类型,不关心具体类.          -------------------------------------------------