码迷,mamicode.com
首页 > 其他好文 > 详细

继承 2014年6月8日18:13:52

时间:2014-06-09 15:04:03      阅读:259      评论:0      收藏:0      [点我收藏+]

标签:c   style   class   blog   code   java   

bubuko.com,布布扣
 1【1】        #region 李氏替换法则
 2             //对象new Dog()是一个实际存在的东西;变量d是一个标签。
 3             Dog d1 = new Dog();//对象的个数怎么算??一个new就是一个对象!~
 4 
 5             //父类的变量指向子类的对象(李氏替换法则)
 6             Animal a1 = d1;//等价于下面式子
 7             Animal a2 = new Dog();//符号=其实就是给实在的东西贴标签的过程。
 8 
 9             //Dog d = a2;//系统报错,系统不会上下文查找!
10 
11             //子类的变量指向父类的对象就不成功,必须显示的转换
12             Dog d2 = (Dog)a2;//强类型转换,a2从变量上看是一个Animal,不能擅自将Dog标签贴在a2上 
13             #endregion
bubuko.com,布布扣
bubuko.com,布布扣
 1【2】         #region AS用法
 2             Animal a = new Dog();
 3 
 4             //()转换和as 转换的区别:如果转换失败()会报异常,而as则会返回null。
 5             Dog d = a as Dog;
 6             if (d != null)
 7             { Console.WriteLine(""); }
 8 
 9             //Cat c = a as Cat;
10             //if (c != null)
11             //{ Console.WriteLine("毛"); } 
12             #endregion
bubuko.com,布布扣
bubuko.com,布布扣
 1【3】        #region IS和AS的比较
 2             Animal a = new Dog();
 3 
 4             //is运算符结果就是bool,表示是否是指定的类型。is用来判断变量指向的对象是否是指定的类型或者指定类型子类类型。
 5             if (a is Dog)
 6             {
 7                 Dog d1 = (Dog)a;
 8                 d1.Jiao();
 9             }
10 
11             //as可以起到判断类型和转换的双重作用。
12             Dog d2 = a as Dog;
13             if (d2 != null)
14             {
15                 d2.Jiao();
16             } 
17             #endregion
bubuko.com,布布扣

 

继承 2014年6月8日18:13:52,布布扣,bubuko.com

继承 2014年6月8日18:13:52

标签:c   style   class   blog   code   java   

原文地址:http://www.cnblogs.com/skyl/p/3776537.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!