标签:c style class blog code java
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
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
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
继承 2014年6月8日18:13:52,布布扣,bubuko.com
标签:c style class blog code java
原文地址:http://www.cnblogs.com/skyl/p/3776537.html