里式转换
2018-06-18 00:40:31来源:未知 阅读 ()
里氏转换:
- 子类可以赋值给父类 (如果有一个方法需要一个父类作为参数,我们可以 传一个 子类对象)
- 如果父类中装的是子类可以强转为子类对象
- 子类对象可以调用父类成员,但是父类对象永远只能只能调用父类自己的成员
Person p=new Student();
如果说子类可以赋值给父类 那我们应该声明一个父类类型去指向子类对象
如果说父类中装的是子类对象 可以考虑将父类强转为子类对象用
is 转换成功返回 true
as 转换成功返回对应的对象 来接收ss
students ss =p as students;声明一个students类型的对象
is的用法:
if(p is students)
{
((students)p).studentsSayHello();
}
else
{
cw("失败");
}
1 namespace _里氏转换 2 { 3 class Program 4 { 5 static void Main(string[] args) 6 { 7 //// 1、里氏转换 8 ////1)、子类可以赋值给父类:如果有一个地方需要一个父类作为参数,我们可以给一个子类代替 9 // Student s = new Student(); 10 Person p = new Student();//s; 11 12 //string str = string.Join("|",new string[] { "1", "2", "3", "4" }); 13 //Console.WriteLine(str); 14 //Console.ReadKey(); 15 16 ////2)、如果父类中装的是子类对象,那么可以讲这个父类强转为子类对象。 17 18 //is的用法 19 //if (p is Student) 20 //{ 21 // Student ss = (Student)p; 22 // ss.StudentSayHello(); 23 //} 24 //else 25 //{ 26 // Console.WriteLine("转换失败"); 27 //} 28 //as的用法 29 Student t = p as Student; 30 t.StudentSayHello(); 31 Console.ReadKey(); 32 } 33 } 34 35 public class Person 36 { 37 public void PersonSayHello() 38 { 39 Console.WriteLine("我是父类"); 40 } 41 } 42 public class Student : Person 43 { 44 public void StudentSayHello() 45 { 46 Console.WriteLine("我是学生"); 47 } 48 } 49 public class Teacher : Person 50 { 51 public void TeacherSayHello() 52 { 53 Console.WriteLine("我是老师"); 54 } 55 } 56 57 58 }
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- C++ 转换函数搭配友元函数 2020-06-10
- C++ 自动转换和强制类型转换(用户自定义类类型) 2020-06-10
- C++中强制类型转换的应用(第一次) 2020-04-09
- [题记]字符串转换整数-leetcode 2020-04-03
- c++中的类型转换 2020-03-01
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash