如果扩展类并重写方法,那么除了相同的名称和方法签名之外,新方法和重写方法之间的区别是什么。
在下面的代码类中,A有一些方法parentMethod(),并且通过扩展类A在类B中重写它。
我想知道重写方法和新方法之间的区别是什么,除了名称以及为什么我们需要使用类重写方法。
class A {
void parentMethod(){
//some code
}
}
class B extends A {
void parentMethod() { //overridden method
//some overridden code
}
void childMethod() {//new method
//some new code
}
}
答案 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();
}
}