封装 继承
Posted 涤荡轮回
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了封装 继承相关的知识,希望对你有一定的参考价值。
访问修饰符:
pubulc:公共的,只要引用了命名空间,就可以随意进行访问
private:私有的,只有当前类内部才可以访问
internal:内部的,当前程序集内可以访问,程序集就是命名空间,此修饰符是默认的
protected:被保护的,当前类和它的子类才可以访问
命名空间:
也叫程序集,项目中每一个文件夹都是一个独立的命名空间
如果要使用某一个命名空间下的类文件,那么必须首先引用此命名空间
-------------------------------------------------------------------
封装;
打包,封起来,保护起来
private int _Ids; - 私有的成员变量
public int Ids - 属性,封装基本结构
{
get{ return _Ids; }
set{ _Ids = value; }
}
一个成员变量可以有很多个属性
属性返回类型可以是任意类型,不是必须要与成员变量类型相同
属性可以是只读的,也可以是只写的,也可以两者都有
------------------
namespace ConsoleApplication46
{
public class Student
{
private string _Code;
private string _Name;
private decimal _Score;
private DateTime _Birthday;
private string _Sex;
public string Sex
{
get { return _Sex;}
set
{
if (value == "男" || value == "女")
{
_Sex = value;
}
else
{
_Sex = "您的输入有误";
}
}
}
public DateTime Birthday
{
get { return _Birthday; }
set { _Birthday = value; }
}
public string BirthdayStr
{
get { return _Birthday.ToString("yyy年MM月dd日"); }
}
public decimal Score
{
get { return _Score; }
set{
if (value >= 0 && value <= 100)
{
_Score = value;
}
else
{
_Score=0;
}
}
}
}
}
namespace ConsoleApplication46
{
class Program
{
static void Main(string[] args)
{
Student s = new Student();
s.Score = 90.5m;
s.Birthday = DateTime.Now;
s.Sex = "男";
Console.WriteLine(s.Sex);
Console.WriteLine(s.BirthdayStr);
Console.ReadKey();
--------------------------------------------------------------------------------------------------------------------------
继承:
子类可以继承父类所有的public方法和属性
父类不可以调用子类的方法和属性,哪怕是public的
子类可以转换成父类,转换成的这个父类也可以转换回相应子类
子类转换成父类,这个父类不可以转换成其它的子类
父类
子类 - 某个类的子类,派生类,超类
Plane这个类是Fly的派生类,
Plane这个类派生自Fly
------------------------------------------------------------
namespace 继承
{
class Program
{
static void Main(string[] args)
{
Fly f = new Fly();
string s = f.Fly1();
Console.WriteLine(s);
Bird b = new Bird();
string bb = b.Fly1();
Console.WriteLine(bb);
Plane p = new Plane();
string pp = p.Fly1();
Console.WriteLine(pp);
Console.ReadLine();
namespace 继承
{
public class Fly
{
public string Fly1()
{
return "我可以飞行";
}
}
}
namespace 继承
{
public class Bird:Fly
{
}
namespace 继承
{
public class Plane:Fly
{
}
}
强转
Bird b =new Bird();
Fly f =(Fly)b; //b这个类 强制转换成父类 fly ,转换后 不能用bird类的 属性
Bird bb =(Bird)f; // 转换成的这个父类 也可以转换回去,(转回到相应的子类)
以上是关于封装 继承的主要内容,如果未能解决你的问题,请参考以下文章