C# 里氏转换

  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.Linq;  
  4. using System.Text;  
  5. using System.Threading.Tasks;  
  6.   
  7. namespace _02里氏转换  
  8. {  
  9.     class Program  
  10.     {  
  11.         static void Main(string[] args)  
  12.         {  
  13.             ////           1、里氏转换  
  14.             ////1)、子类可以赋值给父类:如果有一个地方需要一个父类作为参数,我们可以给一个子类代替  
  15.             //  Student s = new Student();  
  16.             Person p = new Student();//s;  
  17.   
  18.             //string str = string.Join("|",new string[] { "1", "2", "3", "4" });  
  19.             //Console.WriteLine(str);  
  20.             //Console.ReadKey();  
  21.   
  22.             ////2)、如果父类中装的是子类对象,那么可以讲这个父类强转为子类对象。  
  23.   
  24.             //is的用法  
  25.             //if (p is Student)  
  26.             //{  
  27.             //    Student ss = (Student)p;  
  28.             //    ss.StudentSayHello();  
  29.             //}  
  30.             //else  
  31.             //{  
  32.             //    Console.WriteLine("转换失败");  
  33.             //}  
  34.   
  35.             //as的用法  
  36.   
  37.             Student t = p as Student;  
  38.             t.StudentSayHello();  
  39.             Console.ReadKey();  
  40.   
  41.   
  42.         }  
  43.     }  
  44.   
  45.     public class Person  
  46.     {  
  47.         public void PersonSayHello()  
  48.         {  
  49.             Console.WriteLine("我是父类");  
  50.         }  
  51.     }  
  52.     public class Student : Person  
  53.     {  
  54.         public void StudentSayHello()  
  55.         {  
  56.             Console.WriteLine("我是学生");  
  57.         }  
  58.     }  
  59.     public class Teacher : Person  
  60.     {  
  61.         public void TeacherSayHello()  
  62.         {  
  63.             Console.WriteLine("我是老师");  
  64.         }  
  65.     }  
  66.   
  67.   
  68. }  
shashou47

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: