为什么需要覆盖方法?

时间:2017-11-21 19:04:27

标签: java

  1. 如果扩展类并重写方法,那么除了相同的名称和方法签名之外,新方法和重写方法之间的区别是什么。

  2. 在下面的代码类中,A有一些方法parentMethod(),并且通过扩展类A在类B中重写它。

  3. 我想知道重写方法和新方法之间的区别是什么,除了名称以及为什么我们需要使用类重写方法。

    class A {
        void parentMethod(){
           //some code
        }
    }
    
    class B extends A {
        void parentMethod() { //overridden method
            //some overridden code
        }
        void childMethod() {//new method
            //some new code
        }
    }
    

2 个答案:

答案 0 :(得分:0)

当您有两个代码非常相似的类时,将使用覆盖。有些代码是不同的,所以你想要一些常见的代码和一些可以从变化变为变异的抽象方法。变体将变成扩展基类的抽象类。在此处阅读更多https://docs.oracle.com/javase/tutorial/java/IandI/abstract.html

答案 1 :(得分:0)

下面解释了使用示例的覆盖方法。

您可以在想要使用相同“方法名称”和“签名”的地方使用它,但需要提供新的代码功能。

检查以下代码,

1. class "Car" is there.
2. created default method for car as "myHorn()".
3. created new class as "Ferrari".
4. overriden the method "myHorn(), as for car i want to use new horn.
5. now for all cars you can create override the "myHorn()" method and customize code.

Class Car{
//parent class method having default horn
void myHorn(){
System.out.println("peeee..peeeee.peee");
}
}

class Ferrari extends Car{
//overridden method using same method and overriding horn
void myHorn(){
System.out.println("fuuuuuuuuuuu..fuuuuuuuuuu");
}
}

class Swift extends Car{
//Creating object of Swift class and calling  method of Class "'Car"
Swift car = new Swift();
//if want to use default horn
car.myHorn();
}
}