1223访问权限、继承关系、值类型和引用类型
一、访问权限
a、类的访问权限(修饰符):
public:跨程序集,命名空间,必须要using引用
internal:默认,自己当前命名空间范围,不可以跨越使用
成员的访问权限(修饰符):
public:公共的,可以跨空间、跨程序集使用
private:私有的,只能在当前类使用
protect:受保护的,只能在当前类和子类使用
internal:当前命名空间可以使用,但是会随着所在类的范围而定,当我们把类的范围改为public时,则internal的成员也可以 随之在其他命名空间使用;
二、继承
继承:类与类之间的关系:父子关系;
包括:公有继承(public)、私有继承(private)、保护继承(protected) 等。继承可以使现有的代码具有可重用性和可扩展性。
注意:
(1)子类继承父类,一个类只能继承一个父类
(2)当子类继承父类之后就拥有了父类的公共属性和方法
(3)子类对象可以直接转换为父类类型,但父类对象不能直接转换为子类类型。
(4)当某个父类对象是通过子类对象转换来的时候,通过父类类型不能点出来子类的属性和方法,只有当从某个子类对象转换来的 父类对象,才能再转换回去
注意:Lion s1=(Lion)a;在生成的时候没有问题,但是运行之后会报错
三、引用类型和值类型之间的区别
a、引用类型:由类型的实际值引用(类似于指针)表示的数据类型。如果为某个变量分配一个引用类型,则该变量将引用(或"指向")原 始值。
引用类型之间的赋值:
对象的等号赋值,实际赋值的是指向
Class1 c = new Class1();
Class1 d = c; 那么d和c是一个东西。
c和d指向的属性都是一样的,如果其中一个改变了其中的属性,另一个也会改变
b、值类型:将一个值类型变量赋给另一个值类型变量时,将复制包含的值。这与引用类型变量的赋值不同,引用类型变量的赋值只复制对对象的引用,而不复制对象本身。
值类型之间的赋值:
另外开辟一个空间,将这个值直接放进去
int i=1;
int h=i;h是新开辟的空间