Java基础笔记(十七)——继承(续)final

final  最终的

修饰,此类不能被继承。final与访问修饰符public位置随意,在class前即可。public final class A{ }

修饰方法,此方法不能被子类重写,但可以被子类正常继承。  public final void eat(){ }

修饰方法内的局部变量,此局部变量不允许被修改。其中,只要在使用前赋值即可,一旦赋值就不可改变。final int a=10;

修饰类中成员属性,值也不可改变。值的赋值方式有三种:(1)定义直接初始化;(2)在构造代码块中对其赋值;(3)在构造方法中初始化(有多个构造方法,都要赋值)。如果这三种方式都没赋值,则编译出错。如果有多个构造方法,只在其中一个构造方法里赋值也是编译出错的,因为创建对象时不一定会用哪个构造方法,没有赋值的,final变量就无效未初始化了,即出错。

Java包括基本数据类型和引用数据类型。

基本数据类型:int、float、double...     直接赋值    int a=1;

引用数据类型:类、String、System、数组...   实例化方式构造对象,且对象里有很多属性值

final修饰引用数据类型,引用地址不可改,属性值可改。

final Animal animal = new Animal("hh",1);

animal = new Animal();    //编译出错

扫描二维码关注公众号,回复: 5484493 查看本文章

animal.age=2;     //属性值都是可以改的

animal.name="aa";

修饰基本数据类型的变量——初识赋值之后不能更改

修饰引用类型的变量——初识化之后不能再指向另一个对象,但对象的内容是可变的。

final配合static使用

可以修饰方法和变量,其中变量作为全局变量,不允许被修改。可用作只需加载一次,又不需要修改的配置信息。

如:public static final String URL="www.xx.com";      //final和static位置可换,随意

final可提高性能,但会降低可扩展性。

注解

如:@Override  重写方法的注解

重写父类方法时可以用注解快捷方式,选择要重写的方法,快速添加。

注解相当于一个标记,告诉编译器和系统,还可以提示编程以防出错。例如,子类要重写父类的一个方法,加上@Override注解,然而父类忘记写此方法,会提示出错信息。

注解按照运行机制分:

源码注解——给编译器看,注解只在源码中存在,编译成.class文件就不存在了。如:@Override

编译时注解——注解在源码和class文件中都存在。

运行时注解——在运行阶段还起作用,甚至会影响运行逻辑的注解。如:    Spring注解:@Autowired

按照来源分:

来自JDK的注解   如:@Override

来自第三方的注解    如:Spring注解:@Autowired

我们自己定义的注解

猜你喜欢

转载自www.cnblogs.com/tendo/p/10506746.html
今日推荐