类是引用类型,结构是值类型
值类型是存放在栈上的,引用类型是存放在堆上的,栈上存放的是引用的地址。
类当中默认有一个无参数的构造函数,当在类中写一个有参数的构造函数,默认无参数的构造函数会消失,在类中写构造函数参数列表中参数个数可以不确定
在结构中也有一个默认的无参函数,当在结构中写一个有参数的构造函数, 默认的无参函数的构造函数不会消失,在结构中写构造函数,要把所有的字段都要完全赋值。
继承的使用
子类继承了父类的成员,子类还可以有自己的成员。
Protected 访问修饰符不允许其他非子类访问
子类中如果有有参的构造函数,则默认是调用父类中无参的构造函数。
传递性:
单根性:子类只能有一个父类,父类可以有多个子类。
类型转换
里氏转换:子类和父类的转换。
父类对象不能直接转化为子类
如果父类在实例化的时候实例化的是子类,那么再转换这个子类就可以了。
如果父类在实例化的时候实例化的是子类,在转换的时候的,如果将这个子类变成另一个子类那么会报异常
将子类实例化之后,可以直接将子类转化成父类
Is 和 as
Bool result = p is teacher 然后再后面用if语句进行判断
Person p = t as person; 可以直接将父类转换为子类,但是可能会出现异常。