访问修饰符_封装、继承、多态

一:访问修饰符

pubulc:公共的,只要引用了命名空间,就可以随意进行访问
private:私有的,只有当前类内部才可以访问

internal:内部的,当前程序集内可以访问,程序集就是命名空间,此修饰符是默认的
protected:被保护的,当前类和它的子类才可以访问

二:命名空间:
也叫程序集,项目中每一个文件夹都是一个独立的命名空间。
如果要使用某一个命名空间下的类文件,那么必须首先引用此命名空间。

三:封装

打包,封起来,保护起来

基本格式:

private int _Ids; - 私有的成员变量

public int Ids - 属性,封装基本结构
{
get{ return _Ids; } 
set{ _Ids = value; }
}

一个成员变量可以有很多个属性

属性返回类型可以是任意类型,不是必须要与成员变量类型相同

属性可以是只读的,也可以是只写的,也可以两者都有

四:继承

子类可以继承父类所有的public方法和属性

父类不可以调用子类的方法和属性,哪怕是public的

子类可以转换成父类,转换成的这个父类也可以转换回相应子类

子类转换成父类,这个父类不可以转换成其它的子类

例:

public class bird:fly
{
public override string flying()
{
return "我可以飞到参天大树上去!";
}

这即是bird这个子类是态生于fly这个父类。

五:多态

正所谓龙生九子,各有不同,继承了同一个父类的各个子类之间也是各有不同的。同样都是继承了同一个父类,

但是父类中的方法并不使用任何一个子类,那么在这就需要子类重新编写这个方法的主体。

重新编写方法:

1、需要父类同意子类可以重新编写自己的方法
virtual - 虚方法
2、子类只能重写父类允许重写的方法,只能重写虚方法
override - 重写覆盖虚方法

例:

父类中的写法:

public class fly
{
public virtual string flying()
{
return "我能飞的更高!!";
}

子类中的写法:

public class plane:fly
{
public override string flying()
{
return "我可以飞到白云上去";
}


另外,所有的类都可以当做父类,都可以有虚方法

抽象类方法:abstract
它就是为了被继承而出现的

普通的类中所有的方法都变成虚方法,没有人用最基础的方法,全部都需要重写,那么就不需要那么费劲把普通类中的方法主体都写完,而是,直接定义成抽象类,并且都写成抽象方法。

只声明方法的名称和返回类型,具体方法主体是什么,继承过去以后自己去实现。

抽象方法一定是在抽象类中
有抽象方法的类,一定是抽象类

抽象类中不一定只有抽象方法

接口:interface
就是让类更加完善

干爹

都是抽象方法,不能有一点实在东西,全部内容都需要在子类中进行实现

原文地址:https://www.cnblogs.com/xtq0313/p/5852052.html