1)概念回顾
1 字段,反映了对象的状态,一律为private,调用者只能通过方法来试图改变该对象
的状态,至于是否改变,是有类自己来决定的。
2 Person p1=new Person(); p1.height=182; //修改p1指向的对象的属性为182
3 也可以让对象作为参数进行引用传递,即函数间传递的类的对象也是引用传递
4 p1=null; p1不指向任何对象,若果p1之前指向了对象,则切断p1和对象间的关系 若果强行赋值,会出现运行时的错误。
5 this在类内的作用是,明确的说明了调用的是自己本对象的成员
6 get只读属性;set只写属性。
7 构造函数--也是用来创建对象,不过用来对对象的状态进行了初始化。
2)关于继承
1 Person p=ch1; 父类可以指向子类指向的对象,但不能越界,只能用属于自己的部
分。除非子类重写了父类,但是,必须是重写。
2 (关于继承吗,在父子类调用时,最主要的是理解其各自的所有权问题,即父类堆内存中有子类的成员吗,若有那就OK,反之亦然)
Chinese c = new Chinese(); //1、先声明子类对象
c.Say(); //
Person p = c; //2、因为子类中有Person的成员
p.Say(); // 只能用自己的
Person p2 = new Person(); //3、声明新的父类
Chinese c2 = (Chinese)p2; //错误,因为父类中没有子类的成员,运行时会出错
Chinese c2 = (Chinese)p; //正确,因为父类指向的对象中,确实有子类的成员
c2.Say(); //还是用自己的方法,不用父类的
3 as的使用,也是强制的将父类对象转为子类对象,但是转换不成功(父类中没有子 类成员时),不会报错,只会让对象指向为Null
Person p1=new Japanese(); Chinese c3= p1 as Chinese; //c3结果为Null
4 is的使用,用来判断一个变量知否指向了该对象 if(p1 is Japanese){}

浙公网安备 33010602011771号