Java面向对象编程基础
面向对象(Object oriented programming,OOP)技术是一种强有力的软件开发方法,它采用数据抽象与信息隐藏技术,来使软件开发简单化,以达到代码重用的目的。
1、OOP的3个特性(封装、继承和多态性)
封装是类的基础,指把类的相关实现细节隐藏起来,在类中将数据和实现操作的代码集中起来放在对象的内部,调用这些类时只需直接使...
分类:
编程语言 时间:
2015-07-05 11:07:38
阅读次数:
142
强制转换父类对象为子类#include#include#include using namespace std;class father{public: void smart(){} virtual ~father(){}};class son : public father{pub...
分类:
编程语言 时间:
2015-07-04 23:30:20
阅读次数:
174
运行时多态性是面向对象程序设计代码重用的一个最强大机制,Java多态性的概念也可以被说成“一个接口,多个方法”。Java实现运行时多态性的基础是动态方法调度,它是一种在运行时而不是在编译期调用重载方法的机制。方法的重写Overriding和重载Overloading是Java多态性的不同表现。重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表...
分类:
编程语言 时间:
2015-07-02 15:49:51
阅读次数:
139
C++语言的多态性 与 C++类的虚函数有关引入一个问题:定义一个基类指针,指向派生类对象,然后根据指针调用相应的方法,会有什么效果?class CBase{public: virtual void vfun() { coutvfun(); pBase->fun(); // 输出...
分类:
编程语言 时间:
2015-06-27 23:55:33
阅读次数:
161
并非只能通过继承使用多态性,还能通过接口使用它。和抽象类不同,接口不包含任何实现(方法)。然后和抽象类相似,接口也定义了一系列成员,调用者可以依赖这些成员来支持一个特定的功能。实现接口的类会使用与被实现的接口相同的签名来定义方法。通过基类来共享成员签名和实现,但通过接口只是共享成员签名,不共享实现。...
面向对象编程类是面向对象编程的3个主要特征---封装、继承和多态性---的基础。封装允许隐藏细节。继承继承关系至少涉及两个类,其中一个类(基类)是另一个类的更泛化的版本。为了从一个类型派生或者说从它继承,需要对那个基类型进行特化,这意味着要对基类型进行自定义,针对特定的目的调整它。继承最关键的一点在...
有些函数是不能作为虚函数的,具体是哪些?之前也没总结过,现在梳理一下!
作为虚函数的函数,必须是类的成员函数,且具有继承性。
1.非类的成员函数,即 普通函数
它们没有继承性,即便声明为虚函数,也毫无意义。
2.构造函数
首先,构造函数是不能够被继承的,自然就不能声明为虚函数
其次,构造函数是用来执行初始化的,虚函数是用来实现多态性的。若尚未构造出来,如何实现多...
分类:
其他好文 时间:
2015-06-27 16:35:39
阅读次数:
115
简单的说,虚函数就是被virtual修饰的成员函数。其目的就是为了实现类的多态性,需要了解一下几个问题:1.一个函数是虚函数,并不是说这个函数不被实现;2.定义一个函数为虚函数的目的,是为了从基类调用派生类的同名函数;3.如果一个函数被定义为纯虚函数,代表这个函数没有被实现,需要子类实现。举例说明:...
分类:
编程语言 时间:
2015-06-25 10:11:25
阅读次数:
125
在一个平面打斗游戏中,任何的角色(Role)都有血量(blood)和位置loc(此处loc是Location类的实例)属性。有了Role类,可以派生出不同的角色,如人、神仙、怪兽等。如下程序中,定义了Location类和Role类,人类(Human)中新增了姓名和攻击力数据成员,请为Human类设计成员函数,并实现Role类中的moveTo和addBlood两个成员函数。
请在begin和end...
分类:
其他好文 时间:
2015-06-25 09:03:53
阅读次数:
180
在面向对象语言中,接口的多种不同的实现方式即为多态。多态性是指相同的操作或函数、过程可作用于多种类型的对象上并获得不同的结果。不同的对象,收到同一消息将可以产生不同的结果,这种现象称为多态性。最常见的用法就是声明基类的指针,利用该指针指向任意一个子类对象,调用相应的虚函数,可以根据指向的子类的不同而...
分类:
其他好文 时间:
2015-06-24 18:21:52
阅读次数:
129