在该类的对象中,使用[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()
这样也是可以的
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)