当前位置: 技术问答>java相关
我真的告不懂继承,还有this和super.怎么办啊!!!!!??????我们要考试了!
来源: 互联网 发布时间:2015-04-25
本文导语: 如题,大哥们帮忙啊!有经验有好书推荐一下啊. | 其实这个并不难,既然你要考试了,也没时间去看书了,下面时我的一点见解,希望对你能有帮助 继承,它是一种类再生的手段,就是通过继...
如题,大哥们帮忙啊!有经验有好书推荐一下啊.
|
其实这个并不难,既然你要考试了,也没时间去看书了,下面时我的一点见解,希望对你能有帮助
继承,它是一种类再生的手段,就是通过继承母一个已有类来产生自己编程的类,
与它相对应的是合成(也有的称合并)。
继承,从概念上来说就是通过这种手段来获得以由类的共享的数据和方法,当然这些方法你不可能直接修改,因为它被封装成一个黑盒子,具体方法对外不可见只有方法名可见,就是接口。但你可以重载那些方法,来达到自己所要的功能。
在实现上它是通过保留字extends实现的;如下:
public class newclassname extends oldclassname{
}
但在现实编程中,对于类的再生一般先考虑合并,通过委托来实现自己的功能,如下:
class shape{
public draw(){}
}
class rectangle
shape rect;
public draw{
rect.draw;
}
}
这种方法非常好用,如果原来的类的功能与所需功能相差很大,那你只好用继承了
如下:
class rectangle extends shape{
public draw();此处即为重载
}
希望这能对你有些帮助,祝你考试成功!
继承,它是一种类再生的手段,就是通过继承母一个已有类来产生自己编程的类,
与它相对应的是合成(也有的称合并)。
继承,从概念上来说就是通过这种手段来获得以由类的共享的数据和方法,当然这些方法你不可能直接修改,因为它被封装成一个黑盒子,具体方法对外不可见只有方法名可见,就是接口。但你可以重载那些方法,来达到自己所要的功能。
在实现上它是通过保留字extends实现的;如下:
public class newclassname extends oldclassname{
}
但在现实编程中,对于类的再生一般先考虑合并,通过委托来实现自己的功能,如下:
class shape{
public draw(){}
}
class rectangle
shape rect;
public draw{
rect.draw;
}
}
这种方法非常好用,如果原来的类的功能与所需功能相差很大,那你只好用继承了
如下:
class rectangle extends shape{
public draw();此处即为重载
}
希望这能对你有些帮助,祝你考试成功!
|
"this"就是这个对象本身。this.f()就等价f(),如果该类没有f()方法,就会在父类中寻找f()方法,父类中没有就会到父类的父类中找。。。。
super.f()将会调用父类的f()方法,即使该类有一个f()方法覆盖了父类的f(),还是会调用父类的。
super.f()将会调用父类的f()方法,即使该类有一个f()方法覆盖了父类的f(),还是会调用父类的。
|
假定我们在一个方法的内部,并希望获得当前对象的句柄。由于那个句柄是由编译器“秘密”传递的,所以没有标识符可用。然而,针对这一目的有个专用的关键字:this。this关键字(注意只能在方法内部使用)可为已调用了其方法的那个对象生成相应的句柄。可象对待其他任何对象句柄一样对待这个句柄。但要注意,假若准备从自己某个类的另一个方法内部调用一个类方法,就不必使用this。只需简单地调用那个方法即可。当前的this句柄会自动应用于其他方法。
|
Think in java 第六章,类再生
|
你不用找什么好书,只要看一下sl275就行了。
http://www.cnjavaclub.com/06/edocument/suncert/sl275.rar
http://www.cnjavaclub.com/06/edocument/suncert/sl275.rar