ios 为一个类添加一个方法有哪些方法

ios 为一个类添加一个方法有哪些方法,第1张

你在类中定义一个方法- (void)buttonPressed

在该类的对象中,使用[self buttonPressed]即可直接调用

也可以使用selector,下面这个例子是button点击时调用的例子:

[button1 addTarget:self action:@selector(buttonPressed:)

forControlEvents:UIControlEventTouchUpInside]

一般的程序库不允许直接修改,可利用继承来做。

举个例子,你要程序库中的类是Class A,你就写:

public Class B extends Class A {

public void methodA()

}

一般Class B只有你自己能用,除非再到网上分发出去。

当然是可以添加的,前提是你正确声明了子类,即:

Dog b = new Dog()

如果你是想尝试《Head First Java》中提到的多态,即:

Animal b = new Dog()

这里Animal是Dog的父类(Dog extends Animal / Dog IS-A Animal)

但是Animal class下面并没有bark()这个方法,所以当你调用b.bark()时会出错。原因就是,Animal类中没有这个方法。子类中你确实添加了bark(),但是不要忘记,b是一个Animal类的reference,而不是一个Dog类的reference。父类是无法继承子类中的方法的。

所以,解决方法就是,在Animal类下面手动添加bark()方法,这样b所属的Animal类下就有bark()这个方法了。然后才是多态的内容:b被声明为Animal类型,但是却是一个Dog类(Animal的子类)的对象。所以实际运行的时候,调用的是Dog类的重写(override)之后的bark()方法。

另外,《Head First Java》第八章里对此有详细的描述。如果你一定要这样用,可以新声明另外一个Dog reference,例如o:

Animal b = new Dog();

Dog o = (Dog) b;

o.bark()

这样也是可以的


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11376146.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存