黑马程序员技术交流社区
标题:
java中父类的静态方法能不能被重写 ?
[打印本页]
作者:
﹎◇waiting﹎
时间:
2012-11-14 13:35
标题:
java中父类的静态方法能不能被重写 ?
本帖最后由 吴愿涛 于 2012-11-14 14:08 编辑
java中父类的静态方法能不能被重写 ?
作者:
张学永
时间:
2012-11-14 13:48
可以的啊,子类覆盖父类,必须保证子类权限大于等于父类。父类的方法为静态,子类在覆盖的时候也必须用静态。
而且覆盖的时候必须保证返回值,函数名,参数列表完全相同才可以,只有内容可以不同,由子类去实现自己特有
的一些功能。
作者:
黑马周磊
时间:
2012-11-14 15:00
我也说说我的理解吧,不知到对不对哈,
子类继承父类后,子类将拥有父类的所有方法,父类的方法 ,子类里也有,如果子类想改变父类中的某一个方法的功能的话,子类就要对那个功能进行复写,静态方法也应该不例外,不然的话,如果子类没有复写那个方法,当子类使用那个方法的时候,虚拟机将使用父类中的方法。
作者:
赵保磊
时间:
2012-11-14 16:21
可以把想复写的父类中的静态方法定义为抽象方法,abstract static void 方法名(); 让后把父类本身也定义为abstract抽象类。这时候抽象的父类本身是不能用来创建对象的,可以调用子类来创建对象,在子类中继承父类的抽象方法进行重写。(即:可以把函数主体不确定,但是子类中所共有的方法定义为父类中的抽象方法,然后由子类重写。)
作者:
聽聽我dē❤
时间:
2012-11-14 16:42
能复写静态方法的,除了构造方法其他的方法都能复写,但是要注意就是不能用非静态方法复写静态方法
作者:
聽聽我dē❤
时间:
2012-11-14 16:46
可以,只要满足重写的要素就可以重写.
重写:
(1)在父子类之间(必须是继承关系)
(2)方法的重写如果访问修饰符是private那么是不能重写的,除此之外要求子类访问修饰符比父类大或者一样
(3)除了访问修饰符有要求,其他必须相同;
1.方法名相同
2.方法的参数列表一定相同
3.方法重写的返回值一定相同
满足这个条件就能重写的
作者:
王玮
时间:
2012-11-14 17:35
当然可以的~
static只是说明方法的内存位置。保证其方法可以被以类名.方法名的方式访问。而对于是否可以被继承和重写,要看其public、 protected、 private权限修饰符,当不为private是可以被子类访问的。当此方法被fina 修饰符修饰的时候,它就不能被重写了。
这是我的理解哦~呵呵~
作者:
赵保磊
时间:
2012-11-14 19:01
其实是可以重写父类中的静态方法,但是是没有实际意义的,静态方法可以不创建对象直接 类名.静态方法名();而即使是创建了对象 调用的也还是父类中原来的也就是没有复写前的方法。 比如: 父类 zi=new 子类();
zi.static方法();
这个程序输出的还是父类中被复写前的静态方法内容。
作者:
陈军
时间:
2012-11-15 10:02
张学永 发表于 2012-11-14 13:48
可以的啊,子类覆盖父类,必须保证子类权限大于等于父类。父类的方法为静态,子类在覆盖的时候也必须用静态 ...
返回值,可以不完全相同的。只要返回类型是被复写方法返回类型的子类,也是可以的
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2