父类(指针、引用)指向子类对象
父类(指针、引用)指向子类对象
1. 父类类型指向子类对象
include <stdlib.h>
#include <iostream>
using namespace std;class Base_J
{
public:Base_J(){cout << "Base Created" << endl;}virtual ~Base_J(){cout << "Base Destroyed" << endl;}void common_fun(){cout << "Base_J, common_fun" << endl;}// virtual void common_fun() = 0;
}; class Derived_J : public Base_J
{
public:Derived_J(){cout << "Derived Created" << endl;}~Derived_J(){cout << "Derived Destroyed" << endl;}void common_fun(){cout << "Derived_J, common_fun" << endl;}
};int main()
{Derived_J d;Base_J b2 = d;b2.common_fun(); // 如果Base_J定义的common_fun是虚函数,则无法通过编译return 0;
}
运行结果:
user@linux-anju:~/C> ./base
Base Created
Derived Created
Base_J, common_fun
Base Destroyed
Derived Destroyed
Base Destroyed
2. 父类引用指向子类对象
Base_J父类中,common_fun定义为虚函数。
int main()
{Derived_J d;Base_J &b2 = d;b2.common_fun();return 0;
}
运行结果:
user@linux-anju:~/C> ./base
Base Created
Derived Created
Derived_J, common_fun
Derived Destroyed
Base Destroyed
3. 父类指针指向子类对象
int main()
{Derived_J d;Base_J *b3 = &d;b3->common_fun();return 0;
}
运行结果与引用方式一致。
4. 总结
- 创建父类类型变量后,该变量终结时,会被调用析构函数;
- 父类引用或指针指向子类变量,终结时不会被调用析构函数;
父类(指针、引用)指向子类对象相关推荐
- 父类指针可以指向子类对象
结论:父类指针可以指向子类对象,但是只能访问父类成员,不能访问子类成员 结论:子类指针不可以指向父类对象,需要类型转换才可以 笔记: <1>.当基类指针指向派生类的时候,只能操作派生类从基 ...
- Java 父类的引用指向子类对象有啥用 总结
1. 你可能会写如下2个方法 feed(Cat cat){ } feed(Dog dog){ } 如果Cat.Dog都是Animal的子类,那你就可以写成 feed(Animal anim ...
- Java多态 父类引用指向子类对象
原文地址http://www.cnblogs.com/111testing/p/6880831.html Java多态的三个必要条件: 1. 继承 2. 子类重写父类方法 3. 父类引用指向子类对象 ...
- 父类引用指向子类对象详解
父类引用指向子类对象 父类引用指向子类对象指的是: 例如父类Animal,子类Cat,Dog.其中Animal可以是类也可以是接口,Cat和Dog是继承或实现Animal的子类. Animal ani ...
- java子类引用指向父类对象_Java多态 父类引用指向子类对象
Java多态的三个必要条件: 1. 继承 2. 子类重写父类方法 3. 父类引用指向子类对象 然后看一个例子 输出结果为: 给出结论:Father c = new Child() 在c的 ...
- 父类引用指向子类对象
父类引用指向子类对象,如何访问子类的属性? 1.第一种办法最简单,强制类型转化为子类. 2.父类引用指向子类对象,由于当前引用为父类,只能访问父类的字段和方法,但是根据多态性可以访问子类的方法,在这个 ...
- Java多态-如何理解父类引用指向子类对象
java多态,如何理解父类引用指向子类对象 要理解多态性,首先要知道什么是"向上转型". 我定义了一个子类Cat,它继承了Animal类,那么后者就是前者是父类.我可以通过 C ...
- [转载] 一文彻底搞懂父类引用指向子类对象问题
参考链接: 用子类引用子类对象 vs 父类引用 public class Father { private String name; private int age; private int weig ...
- java多态 成员访问特点(父类引用指向子类对象)
>父类 子类 package com.dareway.demo;public class Father {public String index="fatherLogo"; ...
- java父类引用子类_java多态,如何理解父类引用指向子类对象
要理解多态性,首先要知道什么是"向上转型". 转型是在继承的基础上而言的,继承是面向对象语言中,代码复用的一种机制,通过继承,子类可以复用父类的功能,如果父类不能满足当前子类的需求 ...
最新文章
- bzoj2339[HNOI2011]卡农 dp+容斥
- AngularJs2与AMD加载器(dojo requirejs)集成
- Maven整合SSM测试
- android 音视频 教程,Android移动端音视频的快速开发教程(九)
- redis rua解决库存问题_如何解决高并发下的库存安全问题,没你想得那么复杂(附源码)...
- python的if语句后面怎么加布尔运算符号是_python if 语句,布尔运算
- 【codevs1227】方格取数2,费用流
- 演示Thread.sleep(100)和Thread.currentThread().isInterrupted()+@Deprecated:将方法标注为废弃的方法...
- IOS学习笔记 ---- 15/09/02
- VC++动态链接库(DLL)编程深入浅出:QA(原创)
- Spring定时器技术终结者——采用XML配置的方式实现Spring定时器
- Java集合容器面试题(2022版本)
- linux内核教学的全套视频,中科大Linux内核分析视频教程下载,共计23集
- 如何做 ASO 优化?
- ElasticSearch之 ik分词器详解
- STM32使用的相关知识点
- java数据之头尾链表
- 织梦DEDE正则查找批量替换数据库自定义内容
- 基于javaweb+mysql的高校学生会社团管理系统(前台、后台)
- 前端.什么是冒泡和阻止冒泡的原因和方法
热门文章
- 如何在win10安装libaio,并且使用CFLAGS和LDFLAGS环境变量指示其位置,并且如何设置DS_BUILD_AIO=0禁用async_io...
- Idea中git进行回滚版本操作和查看修改记录
- C# Find() 与 FindAll()方法的使用
- android 涨潮动画加载_潮汐app怎么使用?潮汐app各功能测评介绍
- 输入一个字符串并原样输出。
- 奇异值分解的定义及应用
- Java集合有哪些?
- Fidder 请求信息颜色的含义
- 前端零基础入门-002-集成开发环境
- TTL与OC电路和MOS管