首页 > 代码库 > 面向对象(封装、继承)

面向对象(封装、继承)

1.类的访问修饰符有public、private、internal、protected。

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

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

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

3.面向对象特性1

封装:打包,封起来,保护起来

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

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

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

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

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

 在属性中可以添加限制条件,例:

输入一个分数(>=0&&=<100),不在范围输出0

//在新建的类中 private decimal _score; {                get { return _score; }                set{                    if (value >= 0 && value <= 100)                    {                        _score = value;                    }                    else                    {                        _score = 0;                    }            }            }//Console.Write("请输入分数");            s.score =decimal.Parse( Console.ReadLine());            Console.WriteLine(s.score);            Console.ReadLine();

 4.面向对象特性2

继承性是子类自动共享父类数据结构和方法的机制,这是类之间的一种关系。在定义和实现一个类的时候,可以在一个已经存在的类的基础之上来进行,把这个已经存在的类所定义的内容作为自己的内容,并加入若干新的内容。

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

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


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

phone pp = (phone)p;//phone是父类,xiaomi、huawei是子类
xiaomi ps = (xiaomi)pp;

子类转换成父类,这个父类不可以转换成其它的子类,比如huawei pa = (huawei)pp;

父类

子类 - 某个类的子类,派生类,超类

xiaomi这个类是phone的派生类,
xiaomi这个类派生自phone

 继承代码:

class phone    {        public string game()        {            return "我专为游戏而生!";        }    }

class xiaomi:phone
{
public string Name()
{
return "我专为发烧而生!";
}
}

class Program    {        static void Main(string[] args)        {            xiaomi p = new xiaomi();            string ps = p.game();
 Console.WriteLine(ps); Console.ReadLine();
phone pp = (phone)p;//子类转换成父类
xiaomi pa = (xiaomi)pp;
Console.WriteLine(pa.Name());
} }

 

面向对象(封装、继承)