先说说 类
如果你正在写一个网络游戏 这个游戏里面有很多怪物是吧 新手要打的怪物有 鸡啊 狗啊 猪啊 鱼啊
网络游戏是要更新的 也许你游戏一刚出来 只能打鸡 然后玩家都练到满级了 你需要继续吸引玩家 砸门就引入新的怪物 狗啊 猪啊 鱼啊。。。。。
显然 面向对象的方法是 为每种怪物写个类 (class 鸡 ,class 狗 ,class猪,class 鱼)刷新生成怪物的时候就 创建对应的对象 删除对象 就是怪物死了。
然后你可能要问,为什么要用类啊?类是用来干什么的呢?我们来解释下:
首先这里有 三只鸡 分别叫 大鸡 中鸡 小鸡
我们发现 大鸡 中鸡 小鸡 有相同的属性啊 比如 身高 体重 年龄
大鸡 中鸡 小鸡 还有相同的动作啊 吃 睡
我们把这些相同的属性 和 相同的动作 抽离出来 形成了类
class 鸡()
{
int 身高;
int 体重;
int 年龄;
void 吃()
{
//这里写鸡吃的时候做了什么
}
void 睡()
{
//这里写鸡睡的时候做了什么
}
}
我们通过类 生成对象 然后对象因为彼此属性的不同被区分(因为大鸡比小鸡高 就是大鸡)
所以说 类 就是一些属性和动作的集合
对象使用类当作模板生成 然后赋予自己的属性 就成了对象
说说继承
砸门前面说过啊 要写个网络游戏 有这些类 class 鸡 ,class 狗 ,class猪,class 鱼
我们发现这些类 有共通之处啊 他们都是动物啊 属性都有年龄 身高 体重 动作都有 吃 睡
那我们可以偷懒只写一个类 class动物吗?
答案是不行啊兄弟 鸡会下蛋 狗可不会 鸡狗 虽然有身为动物的属性和动作 但是也有不同的属性和动作的
但是程序员会偷懒的(额 应该说 程序员遵循 "可复用原则" )尽量不要写 重复的代码 在鸡类里写 吃的动作 难道再在 狗 类里写一遍?不行 太麻烦
于是他们创造了 继承
现在有一个动物类
class 动物()
{
int 身高;
int 体重;
int 年龄;
void 吃()
{
//这里写吃要做的事
}
void 睡()
{
//这里写睡要做的事
}
}
然后我们用继承的方法写个class 鸡
class 鸡:动物
{
void 下蛋()
{
//这里写下蛋要做的事
}
}
class 鸡:动物 就是说 鸡继承自动物
然后 鸡就自动有了 动物的属性 和 动作 不用我们写了 这里还有访问修饰符这个东西 用来限制鸡类可以继承什么 不可以继承什么(如果你不想让鸡睡觉的话 就把睡觉动作设为私有) 这里我就不具体讲访问修饰符了 就是限制访问和继承的东西 去看看资料吧
这,就是继承