java子类重写父类方法,跟子类自己重新定义一个方法有什么区别?
最好贴上代码讲解一下
一般都是封装好的父类,你去继承,重写方法,super调用,自己写的父类也是这个道理,重写方法一目了然,根据要实现的功能,直接回调父类方法,在实际操作中简单易行,同样的功能再去在子类中写一遍,那就不需要继承了对吧
单一的一个方法并没有什么区别。如果有以下两个类Class A ,Class B B extends A 。如果你实例化子类的时候 是 用B b = new B();
这个时候就没有区别,但是如果你用 A a = new B();这个时候如果方法不相同,则调用不一致。重写也可以说成是实现多态的一种方式。
没有什么区别,实现的功能是一样的,只是你重写父类的方法的时候,可以在原来的基础上加上自己自己要实现的逻辑功能,
所谓的原来的基础就是通过super调用父类的逻辑,然后再补充自己的功能,如果你重新定义一个方法就没有这个功能了。
public class BaseClass {
public void dosomething() {
System.out.println("我是父类的一个方法。");
}
}
class TestClass extends BaseClass {
// 重写父类的方法
public void dosomething() {
super.dosomething();
System.out.println("我是子类重写父类的方法。");
}
}
代码实现:
public class TestMain {
public static void main(String[] args) {
TestClass testclass = new TestClass();
testclass.dosomething();
}
}
输出的结果为:
我是父类的一个方法。
我是子类重写父类的方法。