Java继承六:注解简介;关于@Override注解和static方法在继承中的一个例子;

1.注解简介

前面遇到了子类重写父类方法的一些注意事项和方法,那么是否有一种快捷的方式可以帮助用户快速正确地完成上述需求呐?

例如eclipse工具就提供了一种“Alt + /”的快捷键(以后需要留意IDEA相应的快捷键),快速列出在子类中可以重写的所有的方法

Java继承六:注解简介;关于@Override注解和static方法在继承中的一个例子;

下面的@Override就是一个注解

Java继承六:注解简介;关于@Override注解和static方法在继承中的一个例子;

注:工具看到eat方法被Override修饰后,其会自动核查父类中是否有可以被重写的eat方法,如果没有会报错


Java继承六:注解简介;关于@Override注解和static方法在继承中的一个例子;

Java继承六:注解简介;关于@Override注解和static方法在继承中的一个例子;

源码注解:注解只在源码阶段保留,在编译阶段会被丢弃,如上面的@Override就是源码注解。源码注解主要作用是给编译器做代码检测,一旦程序准备进入编译阶段,源码注解的任务也就完成了。

编译时注解:注解会在编译时期保留,但当虚拟机加载class文件(与平台无关的二进制机器码)时会被丢弃;如Spring框架中的@NotNull就是编译时注解。

运行时注解:注解在程序运行的时候还能起作用,甚至会影响到运行逻辑的注解。在程序中还可以通过反射来获取到这类注解。如Spring 框架中的@Autowired注解(依赖注入,其可以在程序运行时,自动将外部传入的数据自动地加载进去)

 

Java继承六:注解简介;关于@Override注解和static方法在继承中的一个例子;

Spring框架等第三方框架的注解是典型的第三方注解;也可根据业务需求自定义注解。

注:除此之外,Java中还有【元注解】,这是注解的注解,如@Target(这儿还理解很浅,

 

2.关于@Override注解和static方法在继承中的一个例子

这个例子看看就行,

Java继承六:注解简介;关于@Override注解和static方法在继承中的一个例子;

Java继承六:注解简介;关于@Override注解和static方法在继承中的一个例子;

Java继承六:注解简介;关于@Override注解和static方法在继承中的一个例子;

但如果这样:就没有报错

Java继承六:注解简介;关于@Override注解和static方法在继承中的一个例子;

对于上面现象的补充:

Java继承六:注解简介;关于@Override注解和static方法在继承中的一个例子;

Java继承六:注解简介;关于@Override注解和static方法在继承中的一个例子;

对于下面的圈住的:父类变量指向子类对象的时,也是调用的父类的create方法

Java继承六:注解简介;关于@Override注解和static方法在继承中的一个例子;