学习日记-类继承中的上下转换
class
MobbliePhone
{
public
void
Test()
{
Console.WriteLine(
"我是手机"
);
Console.ReadLine();
}
}
class
Iphone : MobbliePhone
{
public
void
Test2()
{
Console.WriteLine(
"我是苹果"
);
Console.ReadLine();
}
}
class
Nokia : MobbliePhone
{
public
void
Test3()
{
Console.WriteLine(
"我是诺基亚"
);
Console.ReadLine();
}
}
class
Program
{
static
void
Main(
string
[] args)
{
Nokia[] nokia =
new
Nokia[2];
//nokia[0] =new Iphone(); 这是行不通的,因为同为子类的两个类型不同
//所以需要用上向上转换
MobbliePhone[] mobbliephone =
new
MobbliePhone[2];
mobbliephone[0] =
new
Nokia();
mobbliephone[1] =
new
Iphone();
//因为mobhliephone是MobbliePhone类型的一个引用,不论他指向哪个对象,都只能调用MobbilePhone里的方法
mobbliephone[0].Test();
//这样可以
//mobhliephone[0].Test3(); 这样就不行,尽管它指向了Nokia而且你知道他是个Nokia类型。
//这是需要用上向下转换,用as关键字可以做到这点
if
(mobbliephone[0]
is
Nokia)
//用is关键字判断指向的对象是否是Nokia
{
Nokia lumia520 = mobbliephone[0]
as
Nokia;
//用as关键字来完成向下转换
lumia520.Test3();
}
}
}
转载于:https://www.cnblogs.com/AndyBlue/p/3222381.html
学习日记-类继承中的上下转换相关推荐
- C# 类型运算符重载在类继承中的调用测试
C# 类型运算符重载在类继承中的调用测试 这是一篇晦涩难懂的片面的研究 一,简单的继承层次 class CA {}class CB : CA{}class CC : CB{}}void Test(CA ...
- C++知识点47——类继承中的类型转换与访问权限控制(下)
接上一篇文章https://blog.csdn.net/Master_Cui/article/details/109768311 五.派生类向基类转换的可访问性 当一个子类向基类转化时:有以下三条规则 ...
- 【python】类继承中super的用法
阅读本文,需要知道python中的类与继承的概念. 1.总述 在python中,通过类的继承机制,可以实现在子类中调用父类的方法,从而避免写重复的代码.但在面临多继承时,如果多个父类中都实现了某个相同 ...
- python类继承中构造方法_第8.3节 Python类的__init__方法深入剖析:构造方法与继承详解...
第8.3节Python类的__init__方法深入剖析:构造方法与继承详解 一. 引言 上两节介绍了构造方法的语法及参数,说明了构造方法是Python的类创建实例后首先执行的方法,并说明如果类没 ...
- 类继承中的构造函数与析构函数
构造函数初始化列表 子类的初始化列表,只能对子类的成员变量进行初始化 class Base{ public:int x; };class Derived : public Base { public: ...
- C++知识点46——类继承中的类型转换与访问权限控制(中)
接上一篇文章https://blog.csdn.net/Master_Cui/article/details/109741735 四.public继承.protected继承和private继承 子类 ...
- C++知识点45——类继承中的类型转换与访问权限控制(上)
一.类的继承与类型转换 1.概述 一般情况,如果想把一个类的指针或引用绑定到另外一个对象上,需要指针或者引用的类型与指向对象一致.但是存在继承关系的类是个例外:可以将基类的指针或者引用指向子类 原因是 ...
- python中find函数的使用方法_Python学习日记5|BeautifulSoup中find和find_all的用法
今天是4.20号. 前天晚上看到蒋方舟的一句话: 不要左顾右盼.慢慢积累,慢慢写吧.毕竟除了这样单调的努力,我什么也做不了. 而现在的自己就是个十足的壁花少年. 在进入正题前先说一下每次完成代码后,可 ...
- 统计学学习日记:L3-集中趋势分析之平均数
目录 一.平均数 二.算术平均数 三.加权平均数 四.几何平均数 一.平均数 1.也称为均值 2.集中趋势的最常用测度值 3.一组数据的均衡点所在 4.体现了数据的必然性特征 5.易受极端值的影响 6 ...
最新文章
- kong api gateway 初体验
- Eclipse打JAR包,插件FatJar安装与使用
- 把 分数化为循环小数 和 把循环小数化为分数 的方法
- 北邮OJ 2016网预 - Saber's Conjecture
- 注意满足循环终止条件时counter是否仍在+1(记洛谷P1035WA的经历,Java语言描述)
- 【Kafka】kafka NotLeaderForPartitionException thisserver is not the leader for topic-partition
- CGLI 报错 :VerifyError: class net.sf.cglib.core.DebuggingClassWriter overrides final method visit
- java JVM剖析
- android javap命令生成自定义类签名
- 如何断点调试Tomcat源码
- P4213 【模板】杜教筛(杜教筛)题解
- 基于Springboot+Vue.js的校园二手商城
- 华为JAVA编程规范
- python 管道游戏_用Python做flybird游戏
- juniper防火墙基于路由的IPsec ***配置
- C++ OpenCV相机标定---实心圆点、棋盘格
- Flutter之常用组件的使用举例(中)
- 不看后悔!阿里内部技术参考图册算法篇!(附网盘链接)
- vivo手机删除自带程序方法
- (二)进程管理之进程状态及组织方式
热门文章
- [javascript] Date 时间精确到天
- linux decode函数,Oracle 中 decode 函数用法
- oracle三种删除的区别,三种批量删除PLSQL写法效率的比对
- android按下enter键如何让光标跳到下一个edittext,我们如何知道光标已经移动到edittext的下一行android...
- java线程实例题_java线程相关试题实例源码代码
- 新手学java_新手如何学习Java
- dederss.php美国与,Dede经验:全站rss/连载和分类首页模板替换
- arcgis 圈选获取图层下点位_ArcGIS小技巧——提取面要素的质心点
- mysql时间格式函数_MySQL时间格式函数
- 微服务中为什么需要服务发现?