里式转换


    /*里式转换
     * 1.子类可以赋值给父类
     * 2.如果父类中装的是子类对象,那么可以将这个父类强转为子类对象
     * 
     * 3.is:表示类型转换,如果转换成功,返回一个true
     *   as:转换失败,则返回Null
     * 
     * 
     */
    class Program
    {
        static void Main(string[] args)
        {
            //Student s = new Student();
            //1.子类可以赋值给父类:如果有一个地方需要父类作为参数,我们可以给一个子类代替
            //Person p = s;
            Person p = new Student();

            //2.如果父类中装的是子类对象,那么可以将这个父类强制转为子类对象
            Student s = (Student)p;
            s.StudentSayHello();

            //is
            if(p is Teacher)
            {
                Teacher t = (Teacher)p;
                t.TeacherSayHello();
            }
            else
            {
                Console.WriteLine("转换失败!");
            }


            //as
          //  Teacher t = p as Teacher;
            
            Console.ReadKey();
           
        }
    }

    public class Person
    {
        public void PersonSayHello()
        {
            Console.WriteLine("我是父类");
        }
    }

    public class Student : Person
    {
        public void StudentSayHello()
        {
            Console.WriteLine("我是学生");
        }
    }

    public class Teacher : Person
    {
        public void TeacherSayHello()
        {
            Console.WriteLine("我是老师");
        }
    }

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容