黑马程序员技术交流社区
标题:
父类中的方法,子类可以直接拿过来用?
[打印本页]
作者:
会说话的木头
时间:
2014-5-5 21:41
标题:
父类中的方法,子类可以直接拿过来用?
如题!:handshake
作者:
646245771
时间:
2014-5-5 21:56
本帖最后由 646245771 于 2014-5-5 21:59 编辑
不是这样子的,如果需要实现不一样的功能的话,需要重写一遍。但是如果是跟父类的方法一模一样的话,就可以直接拿过来用。比如一个父类是人,他的子类是张三。”人“的类已经实现了吃饭和工作的方法,如果张三仅仅需要一个吃饭的方法没有特殊的地方,那么就不需要重写。但是如果张三的工作和别人可能不一样,这时候需要对张三的工作方法进行重写。
楼主要记住:当子类出现和父类一模一样的函数时,如果此时子类对象调用父类中的同名函数,那么则会运行子类函数中的内容。就好像父类的函数被覆盖一样。这种情况是函数的另一个特性:重写(或者叫覆盖)
当子类继承父类,沿袭了父类的功能到子类中,但是子类虽具备该功能,但是功能的内容却和父类不一致。这时,没有必要定义新功能,而是使用覆盖的特殊性,保留父类的功能定义,并重写功能对象。
作者:
☆枫の云
时间:
2014-5-5 22:19
楼上说的很全面了=.=,我就不多说了,就简单说两句
1.如果子类没有复写父类的方法,那么可以直接调用。
2.如果子类复写了父类的方法,那么调用时,就调用的是子类方法,而不是父类的。
作者:
you4580
时间:
2014-5-6 19:13
问题其实问太专业我猜应该java初学者吧
按照意思重载了父类该方法时操作子类定义变量
.jackshow.parent;
public class Point {
private String x;
private String y;
/**
* 默认构造函数
*/
public Point(){
}
public String getX() {
return x;
}
public void setX(String x) {
this.x = x;
}
public String getY() {
return y;
}
public void setY(String y) {
this.y = y;
}
}
package net.jackshow.child;
import net.jackshow.parent.Point;
public class Point3D extends Point{
static int c=0;
public Point3D(){
super();
c++;
}
public static void main(String[] args){
Point3D child = new Point3D();
Point3D child1 = new Point3D();
System.out.println("x="+child.getX()+",y="+child.getY()+",c="+c);
}
}
第3,你在class前面加上abstract,接口则把class改为interface,然后变量全部改为public的
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2