`
china34420
  • 浏览: 138145 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Java 中的覆盖@Override注解 写与不写的一点点理解

    博客分类:
  • Java
阅读更多
/*俺的菜鸟笔记
	Java 中的覆盖@Override注解 写与不写的一点点理解
	一般来说,写与不写没什么区别,JVM可以自识别
	写的情况下:即说明子类要覆盖基类的方法,基类必须存在方法
						(控制类型public,protected,返回值,参数列表类型)与子类方法完成一致的方法,否则会报错(找不到被Override的方法)。
	在不写@Override注解的情况下,当基类存在与子类各种条件都符合的方法是即实现覆盖;
	如果条件不符合时,则是当成新定义的方法使用。
	所以如果想覆盖基类方法时,最好还是写上@Override注解,这样有利于编译器帮助检查错误
*/
//示例:
public class OverrideTest extends Test{
	@Override//此处写与不写都能覆盖基类的t(String)方法
	public void t(String s){
		System.out.println("OverrideTest.t(String):" + s);
	}
	//此处不能写@Override注解,因为方法参数类型与基类的t2方法的参数类型不同
	//所以此处只能新定义了一个t2(float)方法,并不能实现覆盖
	public void t2(float f){
		System.out.println("OverrideTest.t2(float):" + f);
	}
	public static void main(String[] args){
		OverrideTest ot = new OverrideTest();
		ot.t("china34420");
		ot.t2(1.0f);
		ot.t2(1);
		ot.t3();
	}
}
/*输出:
	OverrideTest.t(String):china34420
	OverrideTest.t2(float):1.0
	Test.t2(int):1
	OverrideTest.t(String):override
*/

class Test{
	public void t(String s){
		System.out.println("Test.t(String):" + s);
	}
	public void t2(int i){
		System.out.println("Test.t2(int):" + i);	
	}
	public void t3(){
		t("override");	
	}
}
分享到:
评论
2 楼 likoaong 2017-09-08  
。。。。。。
1 楼 niaomingjian 2015-10-29  
好像是这样子的。

相关推荐

    JAVA Annotation学习

    Java注解(Annotation)是Java语言的一个重要特性,它为元数据提供了强大的支持。元数据是关于数据的数据,可以提供额外的信息,这些信息虽然不是程序运行所必需的,但能够帮助编译器、JVM(Java虚拟机)或工具更好...

    j2se一句话学习笔记

    25. **@Override注解**:用于标注重写父类或接口的方法。 26. **EOF异常**:`EOFException`在读取文件结束时抛出。 27. **Popup(弹出)**:在Java GUI中,可以使用`JPopupMenu`创建弹出式菜单。 28. **TrayIcon*...

    Spring多种加载Bean方式解析

    但这2个方式还是有一点点区别: 4.1 由于是一个xml标签,因此是在解析xml,生成的类org.springframework.context.annotation.ComponentScanBeanDefinitionParser,关键代码: @Override public BeanDefinition ...

    Java8DefaultMethodInInterfaceExample_1

    在Java编程语言中,接口(Interface)是一种定义行为的抽象类型,它允许程序员定义一组方法,但不提供具体的实现。自Java 8开始,引入了一项重要的新特性——默认方法(Default Method),也称为虚拟扩展方法。这个...

    05.Java-Advanced

    在这个主题中,我们将讨论一系列关键的Java概念和技术。 1. **多线程**:Java提供了内置的多线程支持,允许程序同时执行多个任务。通过实现Runnable接口或继承Thread类,开发者可以创建并管理自己的线程。线程间的...

Global site tag (gtag.js) - Google Analytics