父类与子类的转换as,is
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace 子类与父类的相互转换
{
class Program
{
static void Main(string[] args)
{
//try catch finally 与 continue
//如果在try中遇到continue,则忽略try中continue之后的语句
//但是依然执行finally中语句
//finally之外的语句也不执行
bool _flag = true;
while(true)
{
try
{
//if(_flag)
// continue; //如果_falg为true,这下面的两句不执行
//Person per = new Student();
//per.Say();//此时输出father //类的转换:as is
//1. is:返回bool类型,指示是否可以做这个转换
//2. as:如果转换成功,则返回对象,否则返回null
//作用:我们可以将所有的子类当做是父类来看,针对父类进行编程
// 可以写出通用代码,从而适应需求的不断改变
Person per = new Student(); Student stu1 = per as Student;
if(stu1 != null)
{
stu1.Say();
} Teacher tea1 = per as Teacher;
if(tea1 == null)
{
Console.WriteLine("转换失败");
}
}
catch (Exception ex)
{
throw ex;
}
finally
{
//如果try中执行了continue,则这两句依然要执行
Console.WriteLine("finally");
Console.ReadKey();
} //如果在try中执行continue,则下面的两条语句并不执行
Console.WriteLine();
Console.ReadKey();
} }
} class Person
{
public void Say()
{
Console.WriteLine("father");
} } class Teacher:Person
{
public new void Say()
{
Console.WriteLine("Teacher");
}
} class Student:Person
{
public new void Say()
{
Console.WriteLine("Student");
}
} }
父类与子类的转换as,is的更多相关文章
- Java中List的父类与子类如何转换?
目录 定义 要点: 子类转父类 父类转子类 定义 A是B的子类,A比B多几条属性 要点: A是B的子类,但List<A>不是List<B>的子类.所以想直接转换是不行的. 子类 ...
- (转载) Java子类与父类之间的对象转换
在使用Java的多态机制时,常常使用的一个特性便是子类和父类之间的对象转换.从子类向父类的转换称为向上转换(upcasting),通过向上转换,我们能够在编写程序时采用通用程序设计的思想,在需要使用子 ...
- Java特性之多态父类与子类之间的调用
问题描述: Java三大特性,封装.继承.多态,一直没搞懂其中多态是什么,最近研究了一下,关于父类和子类之间的调用.下面是一个测试类,源代码如下: package com.test; public c ...
- 20141214--C#父类,子类
首要: 子类 包含父类的所有的属性方法 所有子类都可以直接转化成父类类型 当父类类型变量里面存的是某个子类的对象的时候,才能转化成那个子类类型. 父类与子类的装换: Ren r = new Ren() ...
- C#基础知识—父类和子类的关系
基础知识一: using System; using System.Collections.Generic; using System.Linq; using System.Windows.Forms ...
- c++中子类转父类,父类转子类
#include <iostream> using namespace std; class Father { public: virtual void show() { cout< ...
- java中父类与子类, 不同的两个类中的因为构造函数由于递归调用导致栈溢出问题
/* 对于类中对成员变量的初始化和代码块中的代码全部都挪到了构造函数中, 并且是按照java源文件的初始化顺序依次对成员变量进行初始化的,而原构造函数中的代码则移到了构造函数的最后执行 */ impo ...
- java父类转子类的一个方法
一般子类可以转父类.但父类转子类就会报cast error. 使用jsonobject 思想:先把父类转jsonstring 再把jsonstring转子类.剩余的子类值可以设定进去. import ...
- P188 实战练习(父类和子类)
1.创建一个父类,在父类中创建两个方法,在子类中覆盖第二个方法,为子类创建一个对象,将它向上转型到基类并调用这个方法. 创建Computer父类: package org.hanqi.practise ...
随机推荐
- RDO与RLO
RDO: 平均误差(SSD/SSE).均方误差(MSE).绝对误差和(SAD).峰值信噪比(PSNR) min D subject to R < Rc 拉格朗日优化(λ为拉格朗日乘子): min ...
- VS2005源代码视图出现了小蓝点,怎么弄掉?
VS2005源代码视图出现了小蓝点,怎么弄掉? 编辑->高级->查看空白行 就OK啦~ 这个查看空格的.. 或者Ctrl+E,S
- [Jmeter]用Jmeter做压力测试(分布式)
Jmeter 是Java应用,对于CPU和内存的消耗比较大,因此,当需要模拟数以千计的并发用户时,使用单台机器模拟所有的并发用户就有些力不从心,甚至会引起JAVA内存溢出错误.为了让jmeter工具提 ...
- 全新Ubuntu-13.04安装配置redmine
1. apt-get install vim apache2 libapache2-mod-passenger ruby rubygems libruby ruby-dev libmagickc ...
- 蓝牙入门知识-CC2541知识
蓝牙是为了能够通信,想要通信就必须遵守一定的规则, Profile 就可以理解为相互约定的规则,因为每个协议栈demo 都会有一个Profile 与之对应, 我们这里的SimpleBLExxx 对应的 ...
- Mysql 8.0.* zip版本 windows安装
一,MySQL8.0.*zip版本安装步骤. 1,下载 https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.15-winx64.zip 注现 ...
- XenServer master主机的作用
https://wenku.baidu.com/view/a2d3f0a333d4b14e852468c9.html###
- 从细节处谈Android冷启动优化
本文来自网易云社区 Android APP冷启动优化,对于Android开发同学而言可能是个老生常谈的技优了. 之所以花时间写一篇冷启动优化的文章: 我想从另外一个角度来说冷启动优化,如题所述,从细节 ...
- unity面试题一
一:什么是协同程序? 在主线程运行的同时开启另一段逻辑处理,来协助当前程序的执行,协程很像多线程,但是不是多线程,Unity的协程实在每帧结束之后去检测yield的条件是否满足. 二:Unity3d中 ...
- hdu2099整除的尾数(暴力 省赛)
整除的尾数 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submi ...