(1)方法重载是让类以统一的方式处理不同类型数据的一种手段。多个同名函数同时存在,具有不同的参数个数/类型。
重载Overloading是一个类中多态性的一种表现。
(2)java的方法重载,就是在类中可以创建多个方法,它们具有相同的名字,但具有不同的参数和不同的定义。
调用方法时通过传递给它们的不同参数个数和参数类型来决定具体使用哪个方法,这就是多态性。
(3)重载的时候,方法名要一样,但是参数类型和个数不一样,返回值类型可以相同也可以不相同。无法以返回型别作为重载函数的区分标准。
下面是重载的例子:
packagec04.answer//这是包名
//这是这个程序的第一种编程方法,在main方法中先创建一个Dog类实例,然后在Dog类的构造方法中利用this关键字调用不同的bark方法。
不同的重载方法bark是根据其参数类型的不同而区分的。
//注意:除构造器以外,编译器禁止在其他任何地方中调用构造器。
packagec04.answer
publicclassDog{
Dog()
{
this.bark()
}
voidbark()//bark()方法是重载方法
{
System.out.println(\"nobarking!\")
this.bark(\"female\",3.4)
}
voidbark(Stringm,doublel)//注意:重载的方法的返回值都是一样的,
{
System.out.println(\"abarkingdog!\")
this.bark(5,\"China\")
}
voidbark(inta,Stringn)//不能以返回值区分重载方法,而只能以“参数类型”和“类名”来区分
{
System.out.println(\"ahowlingdog\")
}
publicstaticvoidmain(String[]args)
{
Dogdog=newDog()
//dog.bark()[Page]
//dog.bark(\"male\",\"yellow\")
//dog.bark(5,\"China\")
然后我们再来谈谈重写(Overriding)
(1)父类与子类之间的多态性,对父类的函数进行重新定义。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写(Overriding)。在Java中,子类可继承父类中的方法,而不需要重新编写相同的方法。
但有时子类并不想原封不动地继承父类的方法,而是想作一定的修改,这就需要采用方法的重写。
方法重写又称方法覆盖。
(2)若子类中的方法与父类中的某一方法具有相同的方法名、返回类型和参数表,则新方法将覆盖原有的方法。
如需父类中原有的方法,可使用super关键字,该关键字引用了当前类的父类。
(3)子类函数的访问修饰权限不能少于父类的;
下面是重写的例子:
概念:即调用对象方法的机制。
动态绑定的内幕:
1、编译器检查对象声明的类型和方法名,从而获取所有候选方法。试着把上例Base类的test注释掉,这时再编译就无法通过。
2、重载决策:编译器检查方法调用的参数类型,从上述候选方法选出唯一的那一个(其间会有隐含类型转化)。
如果编译器找到多于一个或者没找到,此时编译器就会报错。试着把上例Base类的test(byteb)注释掉,这时运行结果是11。
3、若方法类型为priavtestaticfinal,java采用静态编译,编译器会准确知道该调用哪个方法。
4、当程序运行并且使用动态绑定来调用一个方法时,那么虚拟机必须调用对象的实际类型相匹配的方法版本。
在例子中,楚雄java课程http://www.kmbdqn.cn/发现b所指向的实际类型是TestOverriding,所以b.test(0)调用子类的test。
但是,子类并没有重写test(byteb),所以b.test((byte)0)调用的是父类的test(byteb)。
如果把父类的(byteb)注释掉,则通过第二步隐含类型转化为int,最终调用的是子类的test(inti)。
'''
适配器模式:将一个类的接口转换成客户希望的另外一个接口。使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
应用场景:希望复用一些现存的类,但是接口又与复用环境要求不一致。
分类:类适配器(通过多重继承)、对象适配器。
'''
class Dog(object):
def __init__(self):
self.name = "Dog"
def bark(self):
return "汪!"
class Cat(object):
def __init__(self):
self.name = "Cat"
def meow(self):
return "喵!"
class Human(object):
def __init__(self):
self.name = "Human"
def speak(self):
return "'你好'"
class Car(object):
def __init__(self):
self.name = "Car"
def make_noise(self, octane_level):
return "引擎声{0}".format("!" * octane_level)
class Adapter(object):
def __init__(self, obj, **adapted_methods):
"""我们对象字典里设置适配的方法"""
self.obj = obj
'''update()方法添加键 - 值对到字典'''
self.__dict__.update(adapted_methods)
"""我们可以通过重载__getattr__和__setattr__来拦截对成员的访问或者作出一些自己希望的行为
__getattr__ 在访问对象访问类中不存在的成员时会自动调用"""
def __getattr__(self, attr):
return getattr(self.obj, attr ,'没有找到此属性')
def original_dict(self):
"""输出对象的实例属性"""
return self.obj.__dict__
def main():
"""定义一个空对象列表"""
objects = []
dog = Dog()
print(dog.__dict__)
'''追加Adapter实例对象到列表'''
objects.append(Adapter(dog, make_noise=dog.bark))
'''Adapter实例属性, 实例也有一个 __dict__特殊属性,它是实例属性构成的一个字典:'''
'''__dict__ 返回的是一个字典,它的键(key)是属性名,键值(value)是相应的属性对象的数据值'''
'''实例仅拥有数据属性,它是与某个类的实例相关联的数据值,这些值独立于其他实例或类。当一个实例被释放后,它的属性同时也被清除了。'''
print(objects[0].__dict__)
print(objects[0].original_dict())
print(objects[0].QQ)
print(objects[0].make_noise())
print("-----------------------------------------------")
cat = Cat()
objects.append(Adapter(cat, make_noise=cat.meow))
print(objects[1].__dict__)
print("-----------------------------------------------")
human = Human()
objects.append(Adapter(human, make_noise=human.speak))
print(objects[2].__dict__)
print("-----------------------------------------------")
car = Car()
objects.append(Adapter(car, make_noise=lambda: car.make_noise(5)))
print(objects[3].__dict__)
print("-----------------------------------------------")
for obj in objects:
print("一个 {0} 正在 {1}".format(obj.name, obj.make_noise()))
if __name__ == "__main__":
main()
KILL 自杀GM指令
Quit [关闭服务器]
Serverstatus 【玩家清单】
Rcon kick STEAM64位ID 理由 [踢人代码]
teleport 要传送的名字 要传送到的名字 [传送代码]
GM物品代码
g 物品名字或者ID 数量 [添加物品代码]
2 : Machines/Storage Locker 储物柜
3 : Machines/Workbench 工作平台
4 : Items/Raw Steak 生肉
5 : Items/Cooked Steak 熟肉
6 : Items/Rancid Steak 腐肉
7 : Items/Bolt Action Rifle 步枪(五弹夹)
12 : Items/Ruby 红宝石
17 : Items/Flint 打火石
18 : Items/Iron Ore 铁矿石
19 : Items/Stone 石块
20 : Items/Coal 煤
21 : Items/Wood Log 原木
22 : Items/Wood Plank 厚木板
23 : Items/Animal Fat 动物油脂
25 : Items/Owrong 果实
26 : Items/Owrong Seeds 果实种子
27 : Items/Tree Bark 树皮
28 : Items/Clay 粘土
30 : Items/Iron Pickaxe 铁镐(采掘效率高于石镐)
31 : Machines/Fire Pit 烧烤架 (燃料为煤、原木)
34 : Items/Animal Tendon 动物肉筋 (线绳原料)
35 : Items/Weak String 弱线绳
36 : Items/Shaped Iron 形铁
42 : Items/Limestone 石灰岩(混凝土原料)
44 : Items/Concrete 混凝土
45 : Items/Strong String 强线绳
47 : Items/Wood Bow 木弓
48 : AmmoType/Arrow 箭
49 : Items/Hunting Bow 猎弓
50 : Items/Mouldy Owrong 发霉的果实(汽油原料)
51 : Items/Ash 灰烬
52 : AmmoType/Bullet 步枪子弹
53 : Machines/Blast Furnace 鼓风炼炉
68 : Items/Chemsuit Jacket 生化套装夹克
69 : Items/Chemsuit Pants 生化套装裤
70 : Items/Rubber Boots 胶鞋
71 : Items/Gas Mask 防毒面具
72 : Items/Rubber Gloves 橡胶手套
78 : Items/Iron Axe 钢制斧
79 : Items/Gold Axe 金斧
80 : Items/Titranium Pickaxe 钛金镐
81 : Items/Ultranium Pickaxe 采铀镐
82 : Snare Bow 诱捕弓
85 : Items/Leather 皮
87 : Items/Amber 琥珀
88 : Items/Backpack 背包
89 : Items/Flint Hatchet 原始斧
90 : Debug Backpack GM背包(+3000格,加三种BUFF)
91 : Items/Construction Hammer 工程锤
92 : Car Hunting Bow 车猎弓
93 : Items/Ownership Stake 图腾(定义区域建筑和装置所有权)
94 : Warm Jeans 保暖裤
95 : Dirty Doubleshirt 灰色外套
96 : Basic Boots 普通靴子
98 : Items/Assault Rifle Auto M4A1自动步枪
102 : Beanie 无檐小便帽
103 : EmoHair Emo发型
104 : Grey Sneakers 灰色运动鞋
105 : Dirtyer Doubleshirt 深色外套
107 : Brown TShirt 棕T恤
109 : Gray TShirt 灰T恤
110 : Green TShirt 绿T恤
111 : White TShirt 白T恤
112 : Poo TShirt 狗屎黄T恤
116 : Beanie2 无檐小便帽2
117 : Beanie3 无檐小便帽3
119 : Brown Sneakers 棕色运动鞋
122 : Repair Bow 修复的弓
123 : Items/Roach Builder 生成器
125 : Items/Shotgun 霰弹枪
127 : Machines/Drill 钻采矿机
128 : Items/Basic Spear 石矛
129 : Items/Gray Winter Jacket 灰色冬外套
130 : Items/Red Winter Jacket 红色冬外套
131 : Items/Titranium Ore 钛金矿
132 : Items/Mondinium Ore 蒙迪矿
133 : Items/Ultranium Ore 铀矿
134 : Items/Shaped Mondinium 蒙迪金条
135 : Items/Shaped Mondinium 蒙迪金条
136 : Items/Shaped Ultranium 铀金条
137 : Items/Mondinium Pickaxe 蒙迪矿镐
138 : Mining Bow 采矿弓箭
139 : Items/Stone Pickaxe 石镐
140 : Basic Pants 裤子
141 : Shitty TShirt 烂T恤
142 : Items/Beacon 方向指针
143 : Items/Goat Builder
144 : Items/C4 炸药
146 : Items/Bow of Punishment 惩罚之弓
147 : Items/Gasoline 汽油
148 : Items/Earth Magnet 磁石
149 : Machines/Fridge 冰箱
150 : Items/Frozen Raw Steak 冻生肉
151 : Items/Frozen Cooked Steak 冻熟肉
152 : Items/Crude Coolant 原油冷凝剂
153 : Items/Pitcher Seeds
154 : Machines/Campfire 营火堆
155 : Items/Dynamite 炸药
166 : Sand Hopper Wheel 沙地轮胎
167 : Billycart Wheel Billycart轮胎
169 : Medium Suspension 悬挂
171 : Bakuhatsu Weak Engine 弱引擎
172 : Bakuhatsu Standard Engine 基本引擎
173 : Bakuhatsu Powerfull Engine 强力引擎
174 : Bakuhatsu Gearbox 离合器齿轮箱
175 : Bakuhatsu Road Gearbox 器离合器齿轮箱
176 : Damaged Bakuhatsu Engine 坏引擎
184 : Quadbike Nipple Wheel 全地形轮胎
191 : AmmoType/ShotgunShell 霰弹枪子弹
213 : Items/Sunscreen 防晒油
214 : Aussie Hat 澳大利亚人帽子
215 : Items/Succulent Seeds 种子
216 : Flannel Shirt 法兰绒衬衫
217 : Singlet 汗衫
218 : Singlet 汗衫
219 : Skater Hat 冰球帽
220 : Sombrero 汗衫
225 : Items/Assault Rifle Semi 半自动步枪
226 : Items/Ice Spear 冰矛
227 : Items/Molten Spear 炽热矛
228 : Items/Sharp Spear 尖矛
229 : Items/Arctic Pelt 雪人兽皮
230 : Items/Sasquach Pelt 野人兽皮
231 : Items/Detonator Cap 导火索
269 : Items/Yeti Horn 野人角
270 : Items/Feather A 羽毛A
271 : Items/Feather B 羽
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)