类造出来的变量叫对象
面向对象思想:教给我们如何合理的运用类的规则去编写代码
三大特性: 封装、继承、多态
类:
可以定义成员变量、字段
方法,两个同范围(同一个类,或者父子类中)两个同名但参数类型不同或者参数个数不同的方法互相间构成重载关系
静态成员:不随着造对象初始化,所有对象共享直接通过类名调用
位于同一类中的普通方法可以互相调用
类的字段可以被类的实例方法直接调用
类的静态方法只能直接访问静态字段
封装:就是将成员变量设为private私有的,然后为其封装出一个属性
属性是具有get和set两个函数的读取写入器,能够为成员赋值取值做数据传递
继承:类与类之间可以具有继承关系,一个类只能继承一个父类,但可以被好多
类继承
类的修饰符:
public : 跨程序集,命名空间,必须要using引用
internal:默认,自己当前命名空间范围
成员的修饰符:
private:私有的,只能当前类
protected:受保护的,当前类以及子类
public :公共的,跨程序集
internal:当前命名空间,但是随着类的范围而定,当我们设置类为public之后,
那么internal的成员,也随之可以在其他命名空间访问
继承:类与类之间的关系:父子关系
子类继承父类,一个类只能继承一个父类
当子类继承父类之后就拥有了父类的公共属性和方法
子类对象可以直接转换为父类类型,但父类对象不能直接转换为子类类型,当某个父类对象
是通过子类对象转换来的时候,通过父类类型不能点出来子类的属性和方法
只有当从某个子类对象转换来的父类对象,才能再转换回去
对象的等号赋值,实际赋值的是指向
Class1 c = new Class1();
Class1 d = c; 那么d和c是一个东西。
子类继承父类的时候,父类中的于子类同名不同参数的方法,可与子类方法构成重载关系
父类只能调自己的方法,不能调子类的,
父类有一个和子类同名同参数的方法的时候,通过父类类型对象调的是父类的方法,
通过子类类型调的是子类的方法
抽象类:不能实例化自己的对象
抽象类中有抽象方法抽象方法,抽象方法必须在子类中实现,通过override 重写抽象方法一定在抽象类中,但抽象中不一定有抽象方法,抽象属性必须重写
接口:为了表述归属多个分类的情况,为了实现能够继承多个类的这种情况一个类只能继承一个父类,但能继承多个接口