Unity学习笔记(c#)
·
C#语法
面向对象的三大特性:封装,继承,多态
封装
把类的「数据」和「操作数据的方法」包在一起,同时把不想让外部随便改的东西藏起来,只留安全的入口给外面用。
public class Person
{
// 1. 私有字段:藏起来!外部不能直接访问
private int _age;
// 2. 公开属性:只留安全入口,外部只能通过这里读写
public int Age
{
get { return _age; } // 读取
set
{
// 3. 加验证!保证数据永远合法
if (value >= 0 && value <= 150)
_age = value;
else
Console.WriteLine("年龄必须在0-150之间");
}
}
}
// 调用代码
Person p = new Person();
p.Age = 20; // 正常
p.Age = -5; // 自动拦截,输出错误提示,数据安全
隐藏:用 private 关键字把变量 / 方法设为私有,外部看不见、改不了
暴露:用 public 关键字把安全的方法、属性开放给外部使用
继承
继承就是:一个类直接 “抄” 另一个类的所有属性和方法,不用重复写代码,还能自己再加新功能。
eg: 爸爸有:姓名、年龄、吃饭、睡觉
儿子继承爸爸,自动拥有姓名、年龄、吃饭、睡觉
儿子还能自己多一个新技能:打游戏
// 父类(基类)
public class Animal
{
public string Name { get; set; }
public void Eat()
{
Console.WriteLine("动物会吃东西");
}
}
// 子类(派生类) 继承 Animal
public class Dog : Animal
{
// 自己新增的方法
public void Bark()
{
Console.WriteLine("狗狗汪汪叫");
}
}
Dog dog = new Dog();
dog.Name = "小黄";
dog.Eat(); // 直接用父类的方法,不用自己写
dog.Bark(); // 自己独有的方法
多态
多态必须先有继承才能用
同一个方法,父类引用指向子类对象,调用的时候执行的是「子类自己重写的逻辑」,同一个行为,不同子类有不同实现。
父类:动物,都有「叫」这个行为
子类:狗、猫、鸭
同样都是「叫」:
狗 → 汪汪
猫 → 喵喵
鸭 → 嘎嘎
同一个动作,不同对象表现不一样,这就是多态。
多态核心条件(缺一不可)
1.必须有继承
2.父类方法用 virtual 标记(允许被重写)
3.子类用 override 重写父类方法
4.父类变量指向子类对象
// 父类
public class Animal
{
// virtual:允许子类重写
public virtual void Shout()
{
Console.WriteLine("动物发出叫声");
}
}
// 狗 继承 动物
public class Dog : Animal
{
// override:重写父类方法
public override void Shout()
{
Console.WriteLine("狗狗:汪汪汪");
}
}
// 猫 继承 动物
public class Cat : Animal
{
public override void Shout()
{
Console.WriteLine("猫咪:喵喵喵");
}
}
// 父类类型 变量 = new 子类()
Animal a1 = new Dog();
Animal a2 = new Cat();
// 调用同一个 Shout(),执行的是子类自己的方法
a1.Shout(); // 输出:狗狗:汪汪汪
a2.Shout(); // 输出:猫咪:喵喵喵
更多推荐
所有评论(0)