当前位置: 首页 > 知识库问答 >
问题:

Java中重写和扩展的区别是什么?[重复]

拓拔弘亮
2023-03-14

final关键字可以与方法和类一起使用,但是如果我们与方法一起使用,那么方法就不能被重写,如果我们与类一起使用,那么它就不能被扩展?为此,请让我知道覆盖和扩展的主要区别是什么?

例如下面的程序给出编译错误(编译时间错误):

Class Bike{  
  final void run(){
    System.out.println("running");
  }  
}  

class Honda extends Bike{  
   void run(){
      System.out.println("running safely with 100kmph");
   }  

   public static void main(String args[]){  
   Honda honda= new Honda();  
   honda.run();  
   }  
}  

共有1个答案

孙佐
2023-03-14
  1. 缩进代码!并解决格式问题
lass Bike {
    final void run() {
        System.out.println("running");
    }
}

class Honda extends Bike {
    void run() {
        System.out.println("running safely with 100kmph");
    }

    public static void main(String args[]) {
        Honda honda = new Honda();
        honda.run();
    }
}
class Bike {
    final void run() {
        System.out.println("running");
    }
}

class Honda extends Bike {
    void run() {
        System.out.println("running safely with 100kmph");
    }

    public static void main(String args[]) {
        Honda honda = new Honda();
        honda.run();
    }
}

例如,我有一只class

public class Dog {
    final void bark() {
        System.out.println("Woof!");
    }
}

我有一只狼:

class Wolf extends Dog {

}

Wolf类不能覆盖bark方法,这意味着无论发生什么,它都会打印Woof 。然而,这可能是你想要的:

class Bike {
    void run() {
        System.out.println("running");
    }
}

class Honda extends Bike {
    @Override
    void run() {
        System.out.println("running safely with 100kmph");
    }

    public static void main(String args[]) {
        Honda honda = new Honda();
        honda.run();
    }
}

 类似资料:
  • 我目前正在阅读有关通配符的文章,但我不知道它们之间是否有任何区别?扩展了Animal,E扩展了Animal。

  • 问题内容: 我正在准备考试,但有一个问题,希望这里有人可以回答我。 关于RMI和远程对象。我不知道为什么这两个实现之间有如此大的差异。一种是扩展UnicastRemoteObject,而另一种是将对象导出为UnicastRemoteObject。 我真的没有区别 接口: 这是服务器代码(版本1): 这将是版本2: 我的问题是:两者之间有什么区别? 在第一个版本中,显式创建了注册表,此外,在重新绑定

  • 本文向大家介绍重载和重写的区别?相关面试题,主要包含被问及重载和重写的区别?时的应答技巧和注意事项,需要的朋友参考一下 方法的重载和重写都是实现多态的方式,区别在于前者实现的是编译时的多态性,而后者实现的是运行时的多态性。 重载发生在一个类中,同名的方法如果有不同的参数列表(类型不同、个数不同、顺序不同)则视为重载。 重写发生在子类与父类之间,重写要求子类重写之后的方法与父类被重写方法有相同的返回

  • 问题内容: 我今天换了讲师,他对我说了奇怪的代码。(他说最好用,当我问为什么时,他回答“因为是!”) 所以这是一个例子: 而不是我习惯的: 两者之间有什么区别。为什么他的方式(使用)更好? 通过快速搜索发现了这一点,但我无法真正理解该答案: 问题答案: 在Java中,总是只比较两个引用(对于非原始元素),即,它测试两个操作数是否引用同一对象。 但是,该方法可以被覆盖-因此两个不同的对象仍然可以相等

  • 嗨,我对apache spark比较陌生。我想了解RDD、dataframe和数据集之间的区别。 例如,我从s3存储桶中提取数据。 在这种情况下,当我从s3加载数据时,什么是RDD?另外,由于RDD是不可变的,所以我可以更改df的值,使df不能是RDD。 如果有人能解释RDD、数据帧和数据集之间的区别,我将不胜感激。

  • 问题内容: 我已经看过以前用来表示任何对象的通配符-但最近看到了以下用法: 由于所有对象都扩展了对象,所以这两种用法是同义词吗? 问题答案: 并且是同义的,正如你所期望的。 在某些情况下,泛型实际上并不是多余的。例如,将导致成为下删除,而与它会成为下删除。(如果你要保留与使用的前泛型API的兼容性,这可能很重要。) 来源:http : //download.oracle.com/javase/tu