is 和 as的用法

using System;

namespace _08_继承
{
    class Program
    {
        static void Main(string[] args)
        {
            int age = 18;
            char gender = '男';
            string name = "王五";
            double drive_time = 18.8;

            string interest = "偷拍";
            Driver_1 driv = new Driver_1(name, age, gender, drive_time);

            

            Reporter_ rep = new Reporter_(name, age, gender, interest);

            //里氏转换
            //1) 子类可以赋值给父类,如果有一个地方需要一个父类做参数,我们可以给一个子类代替
            Student_1 s = new Student_1(); //子类
            Person p = s;

            Person p = new Student_1();

            string str = string.Join("|", new string[] { "1", "2", "3", "4", "5", });

            Console.WriteLine(str); //1|2|3|4|5


            //2) 如果父类中装的是子类对象,那么可以将这个父类强转为子类对象

            if (p is Teacher_1)
            {
                Teacher_1 ss = (Teacher_1)p; //强制转换 异常
                ss.TeacherSayHello();
            }
            else
            {
                Console.WriteLine("转换失败");
                Console.ReadKey();
            }

             //is 的用法
            if (p is Student_1)
            {
                Student_1 ss = (Student_1)p; //强制转换
                ss.Xuesheng();
            }
            else
            {
                Console.WriteLine("转换失败");
                Console.ReadKey();
            }

            Student_1 t = p as Student_1; //p 是 student
            Teacher_1 t = p as Teacher_1; //把p父类对象转为teacher;
                                          //as 如果能转换,则返回一个对应的对象,否则返回NUll
                                          // t值为 null

            Student_1 t = p as Student_1; //可以成功
            Console.ReadKey();


            rep.Rep();
            driv.CHLSS();

        }
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

潘诺西亚的火山

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值