java子类重写父类方法,跟子类自己重新定义一个方法有什么区别?

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();

    }

}

输出的结果为:

我是父类的一个方法。
我是子类重写父类的方法。