---------------------- Windows Phone 7手机开发、.Net培训、期待与您交流! ----------------------
04.20
继承的传递性。。
A<--B<--C
A派生了B类。B类继承了A类。。而B类又派生了C类。。也就是C类继承了B类
继承的单根性。。
这个也就是说一个子类只能继承一个父类。。。如果你非说要继承多个类的话
你只能通过实现接口的方式去做。
当子类继承了父类。在NEW一个子类的对像的时候。编译器会自动(隐式)的去
调用父类的构造方法。再执行子类的构造方法。如果子类要调用父类的构造方
法的话就必须要用到关键字:base.
protected:它所修饰的变量或方法只能在本类和子类中访问。其它类中无法访问
interal:只能在本项目中访问
子类可以默认(隐式)的转换为父类。。
student newsd=new student();
person p=newsed; 这样的话。P存着的就是student类了
student s=(student)p; 需要强制转换。。
s. 这样的话s就拥有了学生类的方法和属性
但是呢。一般情况下。。 我们怎么知道。这个newsd是一个学生类的对像
呢。所以这个时候我们应该用到 is as 了
typea a is type b 判断A是否能转换成type B如果成功则返回true
student newsd=new student();
person p=newsed;
if(p is student)
{
console.writeline("能转换");
((student)p).sayhello();
}
里氏替换原则。。说白了就是父类可以替换成子类,就是说子类可以默认转换为父类;
父类是无法转换成子类的。。因为子类中的一些方法是独有的。
is 只能是判断
object as typea ; 先判断object 是否可以转换成type 类如果能转换则返回转换后的值。。
如果不能转的话则为null
student my=p as student();
if(my !=null)
{
my.sahello();
}
在.net框架中。我们定义的类都直接或间接的继承息object类
我们定义的类。如果不写继承。它也是默认继承自object类
var是个推断性的类吧。。相当于一个占位符。你在等号后面给的什么类型。
它就是什么类型。。什么时候用它呢。。就是当我们不知道后面的类型是
什么类型的时候。
比如:var a=new person(); 这个var就是一个person类
var s=i; 这时这个var就是一个int 类型
静态成员可以在类的对像之间静态方法在可以执行对对像类型的相关。但是对像实例无关的命令。使用静态成员时。不用实例化对像。。。比如。consol.writeline() conver.tostring() 等方法都是静态。。
我们根本不用去实例化console类 convert类
类里的静态成员就相当于公开的。。大家都能访问。。而且根本都不用实例化对像就能访问
idisposable这个接口。。只要支持它的话。。就会有一个dispose方法。。而且实例对像必须要实现它...
GOTO 的使用。。。要需要用时。。要在你想跳到的任何一个地写上一个标签。。
如。。mygoto: goto mygoto; 这样就可以了。
如果要让控制台几秒后退出。必须要加一个命名空间。。thread 多线程的。。
然后调用里面的一个方法。 thread sleep(5000);
一个方法如果要返回多个同样类型的值的话。。可以用一个数组。。
返回一个数组。。把方法里面的值放到数组里面。。然后再输出来。。
析构函数既没有修饰符,也没有参数。
一个类只能有一个析构函数。
无法继承或重载析构函数。
forecth 如果要遍历一个数组的话。。这个数组就必须要实现IEnumerable这个接口..
list<T>泛型集合
这个T就相当是占位符。。限定了用户要存储的值的类型
dictionary<tkey,tvalue>就相当一个字典。。
char[] mar={'b','s','f','v','v'};
string str = new string(mar);
可以把Char数组变成字符串
总结的有点哆嗦。呵呵
>---------------------- Windows Phone 7手机开发、.Net培训、期待与您交流! ---------------------- 详细请查看:http://net.itheima.com/