发布网友 发布时间:2022-04-27 07:04
共5个回答
热心网友 时间:2022-06-28 05:31
重写最大的用处就是实现多态。
不管是抽象类,还是接口。都是依赖于子类重写其方法,来实现不同的功能。我写个小例子
public class Person{
//到后面最好是通过抽象类和接口来处理
public void show(){
System.out.println("我叫1号,我会吃饭");
}
}
public class Student extends Person{
//重写
public void show(){
System.out.println("我叫2号,我会喝水");
}
}
public class Teacher extends Person{
//重写
public void show(){
System.out.println("我叫3号,我会啃面包");
}
}
好了,现在来实现一个功能。就是根据传入的不同对象,实现不同的打印
public static void main(String[] args){
showInfo(new Student());
showInfo(new Teacher());
}
//为了方法写一个静态方法
public static void showInfo(Person person){
//根据不同的子类,实现重写的方法,实现多态
person.show();
}
这就可以实现多态了。不管现在是二个类,还是后面增加到一百个类,都可以通过同一个方法实现不同的功能。实现的具体就是子类重写的方法体。
楼主你可以自己写一个不通过重写的,还有一个重写的代码,对比下。。建议你写5个类以上。你就能明显的看出区别了
热心网友 时间:2022-06-28 05:31
其实你想法有点偏了,
为什么要继承呢?就是因为父类中有子类所需要的,比如说变量,某些方法。
但是有些方法可能需要稍微变通才可以满足你的需要,所以重写了方法里的实现,
其实你完全可以不重写,你直接写另外的方法名
所以如果你说的把父类的方法去了,那没一点实际意义。
就比如接口,接口里的方法是没有实现的,为啥还要实现接口呢?因为接口里的方法是某些东西的公共拥有的,所以重写能更省事,直观
热心网友 时间:2022-06-28 05:32
不可以去掉的,重写方法在编译的时候调用的是父类中的方法,运行时会判断子类是否重写父类方法。如果去掉超类中方法编译会报错的
热心网友 时间:2022-06-28 05:32
晕 那就不是重载了 直接新定义了 运行结果还是一样的啊
热心网友 时间:2022-06-28 05:33
..........建议你多看一些java基础--->封装---->继承---->多态 重写方法名相同就比如我们struts2中实现modelDriven中的这个接口要重写它的一个
public Object getModel() {
// TODO Auto-generated method stub
return null;
}方法
我们要写成一个public CRMCustomerForm getModel() {
// TODO Auto-generated method stub
return ccform;
}其中crmcustomerForm是你的一个javaBean类。它的意义在于你超类只定义一个方法,具体这个方法要做什么,要返回什么是子类要做的。