反射与注释

反射与注释

一、注解

1、定义

注解提供的是有关程序的数据,该数据却不属于程序本身。

基本语法:

@Override    //@注解类型名

去掉注解对程序运行不会产生影响。例如之前写过的工厂类与汽车类的代码,即使改成这样也能正常运行:

public abstract class Factory {
   
    public abstract void process();
}

public class Car extends Factory{
   
    public void process() {
   
        System.out.println("汽车厂生产的是汽车");
    }
    public static void main(String[] args)
    {
   
        Factory m=new Car();
        m.process();
    }
}

然而注解并非没有用处,它常常与反射结合被运用在框架中。

使用阶段 作用
编译前 为编译器提供编译检查的依据,辅助检查代码错误或抑制检查异常
编译中或发布时 给编译器提供信息生成代码或给其他工具提供信息生成文档等
运行时 在运行过程中提供信息给解释器,辅助程序执行
2、Override

通过在方法显使用指定的注解,可以显著的减少继承时重写父类方法错误。加上@Override注解的代码,在重写有错误时会报错。

例如上面汽车生产的代码:

public abstract class Factory {
   
    public abstract void process();
}

public class Car extends Factory{
   
    @Override
    public void process(String products) {
   
        System.out.println("汽车厂生产的是"+products);
    }
    public static void main(String[] args)
    {
   
        Factory m=new Car();
        m.process("汽车");
    }
}

这段代码存在明显的错误,产生以下提示:
j a v a : c o m . t e s t . C a r 不 是 抽 象 的 , 并 且 未 覆 盖 c o m . t e s t . F a c t o r y 中 的 抽 象 方 法 p r o c e s s ( ) java: com.test.Car不是抽象的, 并且未覆盖com.test.Factory中的抽象方法process() java:com.test.Car

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值