面向对象(封装继承)
Posted fei!
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面向对象(封装继承)相关的知识,希望对你有一定的参考价值。
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());
} }
以上是关于面向对象(封装继承)的主要内容,如果未能解决你的问题,请参考以下文章