如何快速打出java中的@java override的作用 public void

Java中@Override的作用 - CSDN博客
Java中@Override的作用
@Override是伪代码,表示重写(当然不写也可以),不过写上有如下好处:
1、可以当注释用,方便阅读;
2、编译器可以给你验证@Override下面的方法名是否是你父类中所有的,如果没有则报错。例如,你如果没写@Override,而你下面的方法名又写错了,这时你的编译器是可以编译通过的,因为编译器以为这个方法是你的子类中自己增加的方法。
举例:在重写父类的onCreate时,在方法前面加上@Override 系统可以帮你检查方法的正确性。
public void onCreate(Bundle savedInstanceState)
这种写法是正确的,如果你写成:
public void oncreate(Bundle savedInstanceState)
编译器会报如下错误:The method oncreate(Bundle) of type HelloWorld must override or implement a supertype method,以确保你正确重写onCreate方法(因为oncreate应该为onCreate)。而如果你不加@Override,则编译器将不会检测出错误,而是会认为你为子类定义了一个新方法:oncreate
本文已收录于以下专栏:
相关文章推荐
如果想重写父类的方法,比如toString()方法的话,在方法前面加上@Override, 系统可以帮你检查方法的正确性: @Override
public String toString(){......
@Override是伪代码,表示重写(当然不写也可以),不过写上有如下好处:
1、可以当注释用,方便阅读;
2、编译器可以给你验证@Override下面的方法名是否是你父类中所有的,如果没有则报错。...
scutmg:jdk5就开始支持annotation啦,jdk6的支持更多。annotation不会影响你运行的结果的。@Override的用法:Override:java.lang.Ov...
初学Android开发,在hello world的时候就回看到其中的@override语句,但是一直不知道这是干嘛的?于是查找资料有如下解释:
@Override是伪代码,表示重写(当...
@Override标签的作用   @Override是伪代码,所以是可写可不写的.它表示方法重写,写上会给我们带来好处.
   1.可以当注释用,方便阅读.
   2.告诉阅读你代码的人,这是方法...
有时候Java的Eclipse工程换一台电脑后编译总是@override报错,把@override去掉就好了,但不能从根本上解决问题,因为有时候有@override的地方超级多。
这是jdk的问题,...
@override注释在jdk1.5环境下只能用于对继承的父类的方法的重写,但不能用于对实现的接口中的方法的实现。(也就是jdk1.5的 @Override这个annotation 并不把接口认为是超...
@Override注解是作用于源代码的注解,用于表明注解的方法重写了父类型的方法,但是这个注解在1.5和1.6及以后是区别的。1.5中,只能用于在继承某个类时,重写父类中的方法,而在实现一个接口中的方...
一、覆写概念
既然现在出现了继承的关系,那么就存在了子类和父类的联系,而在子类之中有可能定义和父类完全相同的方法或属性的名称,这个时候就称为覆写了。
二、方法的覆写
当子类定义了和父类在方法名称...
  重写(Override)也称覆盖,它是父类与子类之间多态性的一种表现,而重载(Overload)是一个类中多态性的一种表现。 override从字面就可以知道,它是覆盖了一个方法并且对...
他的最新文章
讲师:董岩
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)Java 覆写(Override)详解 - CSDN博客
Java 覆写(Override)详解
一、覆写概念
既然现在出现了继承的关系,那么就存在了子类和父类的联系,而在子类之中有可能定义和父类完全相同的方法或属性的名称,这个时候就称为覆写了。
二、方法的覆写
当子类定义了和父类在方法名称、返回值类型、参数类型及个数完全相同的方法的时候,称为方法的覆写。
没有覆写的操作:
package com.wz.
public void print() {
System.out.println("Hello World .");
class B extends A {
public class Test {
public static void main(String args[]) {
B b = new B();
b.print();
运行结果:
Hello World .
这时实例化的是子类对象,但是在子类中没有print()方法,那么就使用从父类中继承而来的pritn()方法。
实现覆写:
package com.wz.
public void print() {
System.out.println("Hello World .");
class B extends A {
public void print() {
System.out.println("世界,你好!");
public class Test {
public static void main(String args[]) {
B b = new B();
b.print();
运行结果:
世界,你好!
当一个类中的方法被覆写后,如果实例化的是这个子类对象,则调用的方法就是被覆写过的方法。
在进行方法覆写的时候有一点需要注意:被子类所覆写的方法不能拥有比父类更严格的访问控制权限。
如果此时父类之中的方法是default权限,那么子类覆写的时候只能是default或public权限,而如果父类的方法是public,那么子类之中方法的访问权限只能是public。
当一个子类覆写了一个父类方法的时候,子类要想调用父类的被覆写过的方法,要在方法前要加上“super”:
package com.wz.
public void print() {
System.out.println("Hello World .");
class B extends A {
public void print() {
super.print();
System.out.println("世界,你好!");
public class Test {
public static void main(String args[]) {
B b = new B();
b.print();
运行结果:
Hello World .
世界,你好!
一定要记住操作范围:
(1)this.方法():先从本类查找是否存在指定的方法,如果没有找到,则调用父类操作;
(2)super.方法():直接由子类调用父类之中的指定方法,不再找子类。
问题来了:请问以下的操作是覆写吗?
package com.wz.
private void print() {
System.out.println("Hello World .");
public void fun() {
this.print();
class B extends A {
public void print() {
System.out.println("世界,你好!");
public class Test {
public static void main(String args[]) {
B b = new B();
运行结果:
Hello World .
首先从覆写的概念上来讲:现在父类的权限是private,而子类是public,的确是扩大了权限,而且方法的参数名称及个数、返回值类型都一样。但这种情况在开发之中是不会出现的,使用了private定义的操作都无法覆写。
三、this和super的区别
四、方法重载与覆写的区别
本文已收录于以下专栏:
相关文章推荐
@Override是伪代码,表示重写(当然不写也可以),不过写上有如下好处:
1、可以当注释用,方便阅读;
2、编译器可以给你验证@Override下面的方法名是否是你父类中所有的,如果没有则报...
在子类中可以根据需要对从基类中继承来的方法进行重写。
重写方法必须和被重写方法具有相同方法名称、参数列表和返回类型。
重写方法不能使用比被重写方法更严格的访问权...
1.override覆写
一般是用于子类在继承父类时,重写(重新实现)父类中的方法,重写(覆盖)的规则:
(1).重写方法的参数列表必须完全与被重写的方法的相同,否则不...
方法的覆写是发生继承的关系当中的,子类覆写父类的相关方法。
子类定义了了与父类同名的方法,成为覆写。在方法的覆写的时候要注意访问权限的问题,被覆写的方法不能拥有比父类更为严格的权限问题,内覆写的方法...
Java 中的覆盖@Override注解 写与不写的一点点理解
一般来说,写与不写没什么区别,JVM可以自识别
写的情况下:即说明子类要覆盖基类的方法,基类必须存在方法
重写父类的方法的时候,一定要在方法的上面加以@Override标志。这样一旦方法名称出错的时候,就可以有提示。
前面做了一个例子:在一个主activity中调用一个About...
相信大家都遇到过,比如导入进来的项目,别人电脑上编译无错,在你这里报错,提示要你去掉@Override,但是去掉的地方有太多,你绝对不会
一个一个的去删掉,这不是有效方法,网上搜索了一下问题,处理如...
Overriding and Hiding Methods
An instance method in a subclass with the same signature and return t...
equals()与 == 在java编程或系统实际可发中都会用到,但是二者又有实际的区别。千万不要理所当然地认为equals()与==的作用就是一样的,下面就一步步来阐述二者的区别。phone.jav...
七种程序员的基本技能,它们是:数组、字符串与哈希表,正则表达式,调试,两门语言,一个开发环境,SQL语言,编写软件的思想。
数组、字符串与哈希表
任何受过专业训练的程序员,对“...
他的最新文章
讲师:董岩
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)Java中@Override的作用 - CSDN博客
Java中@Override的作用
一、java @override 报错处理
做项目的时候,同事那边电脑上编译通过的java代码,或者是网上下载的样例代码,导入工程后却是编译不通过,总是@override报错,把@override去掉就好了,有时候@Override出现的地方很多,要全部删除@Override很繁琐很吐血,不能从根本上解决问题。网上找了一下原因,才知道:
据说这是jdk的问题,@Override是JDK5就已经有了,但有个小小的Bug,就是不支持对接口的实现,认为这不是Override 而JDK6修正了这个Bug,无论是对父类的方法覆盖还是对接口的实现都可以加上@Override。
首先要确保安装了jdk 1.6,
然后,在eclipse中修改配置,在 Windows-&Preferences--&java-&Compiler--&compiler compliance level 中选择 1.6,刷新工程,重新编译下;
如果还是不行,就在报错的工程上,鼠标右键选择 Properties--&Java Compiler--&compiler compliance level中选择 1.6,刷新工程,重新编译下。
二、Android之@Override详解
Android的开发者对@Override肯定是非常熟悉,不管是自己的代码中还是书上都会出现,但是他是什么意思呢?如下:
  @Override是伪代码,表示重写(当然不写也可以),不过写上有如下好处:
1、可以当注释用,方便阅读
2、编译器可以给你验证@Override下面的方法名是否是你父类中所有的,如果没有则报错比如你如果没写@Override而你下面的方法名又写错了,这时你的编译器是可以通过的(它以为这个方法是你的子类中自己增加的方法)
  example:
  在重写父类的onCreate时,在方法前面加上@Override系统可以帮你检查方法的正确性。例如:
  public& void &onCreate(BundlesavedInstanceState){…….}
  这种写法是正确的,如果你写成
  public& void& oncreate(BundlesavedInstanceState){…….}
  这样编译器会报如下错误——
  Themethodoncreate(Bundle)oftypeHelloWorldmustoverrideorimplementasupertypemethod,
  以确保你正确重写onCreate方法。(因为oncreate应该为onCreate)
  而如果你不加@Override,则编译器将不会检测出错误,而是会认为你新定义了一个方法oncreate。
本文已收录于以下专栏:
相关文章推荐
android开发中经常看到@Override是什么意思呢?
@Override是伪代码,表示重写(当然不写也可以),不过写上有如下好处:
1、可以当注释用,方便阅读
2、编译器...
程序中的@Override是什么意思? - Leo Chin - 博客园
/hnrainll/archive//2215138.htm...
@Override是伪代码,表示重写(当然不写也可以),不过写上有如下好处:
1、可以当注释用,方便阅读;
2、编译器可以给你验证@Override下面的方法名是否是你父类中所有的,如果没有则报...
如果想重写父类的方法,比如toString()方法的话,在方法前面加上@Override, 系统可以帮你检查方法的正确性: @Override
public String toString(){......
@Override是伪代码,表示重写(当然不写也可以),不过写上有如下好处:
1、可以当注释用,方便阅读;
2、编译器可以给你验证@Override下面的方法名是否是你父类中所有的,如果没有则报...
scutmg:jdk5就开始支持annotation啦,jdk6的支持更多。annotation不会影响你运行的结果的。@Override的用法:Override:java.lang.Ov...
初学Android开发,在hello world的时候就回看到其中的@override语句,但是一直不知道这是干嘛的?于是查找资料有如下解释:
@Override是伪代码,表示重写(当...
@Override标签的作用   @Override是伪代码,所以是可写可不写的.它表示方法重写,写上会给我们带来好处.
   1.可以当注释用,方便阅读.
   2.告诉阅读你代码的人,这是方法...
有时候Java的Eclipse工程换一台电脑后编译总是@override报错,把@override去掉就好了,但不能从根本上解决问题,因为有时候有@override的地方超级多。
这是jdk的问题,...
@override注释在jdk1.5环境下只能用于对继承的父类的方法的重写,但不能用于对实现的接口中的方法的实现。(也就是jdk1.5的 @Override这个annotation 并不把接口认为是超...
他的最新文章
讲师:董岩
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)7被浏览3466分享邀请回答/questions/837864/java-overloading-vs-overwriting3添加评论分享收藏感谢收起//所有的Override都可以去掉,效果一样!!!
public class Test {
public interface I{
int work();
public class A implements I{
public int work() {
System.out.println("A works...");
public class B extends A{
public class C extends A{
public int work(){
System.out.println("C works...");
public class D extends A{
public int work(){
System.out.println("D works...");
public int work(){
A b = new B();
System.out.println("----");
A c = new C();
System.out.println("----");
A d = new D();
public static void main(String[] args){
BaseTest test = new BaseTest();
test.work();
2添加评论分享收藏感谢收起写回答2 个回答被折叠()

我要回帖

更多关于 java中 override 的文章

 

随机推荐