Java继承(下)

Object类

Object类是所有类的父类

一个类没有使用extends关键字明确标识继承关系,则默认继承Object类(包括数组)

Java中的每个类都可以使用Object中定义的方法

equals测试:

继承Object中的equals方法时,比较的是两个引用是否指向同一个对象,而在String类中重写了equals方法,所以用equals方法比较两个String对象时比较的是它们的值是不是相等。

比较时要注意空指针异常。

toString测试:

1.输出对象名时会默认直接调用类中的toSring方法

2.继承Object中的toString方法时,输出对象的字符串表现形式:类型信息+@+地址信息

3.子类可以通过重写方法的形式改变表现内容,如String类中直接输出对象名会输出字符串的值

final

修饰类时:

final写在class之前,和public、static位置可以互换

final class:表示该类没有子类

修饰方法时:

final 方法:该方法不允许被子类重写,还是可以正常被子类继承使用

修饰变量时:

final 方法内局部变量:表示这个局部变量的值不允许被修改,只要使用之前赋值即可

final 类中成员属性:只能在定义时或构造方法/构造代码块中初始化,且不能被修改

final修饰对象实例化时不允许进行引用地址的修改,但可以修改属性值

总结:

1.修饰类表示不允许被继承

2.修饰方法表示不允许被子类重写,但可以被继承,不能修饰构造方法

3.修饰变量表示不允许修改

-方法内部的局部变量:使用前初始化赋值即可

-类中成员变量:初始化只能在定义时、构造方法、构造代码块中进行

-基本数据类型的变量:初始赋值之后不能更改

-引用类型的变量:初始化之后不能再指向另一个对象,但对象的内容是可变的

4.可配合static使用(只需要加载一次且不允许被修改的情况下使用)

5.使用final修饰可以提高性能,但会降低可扩展性

注解介绍

按运行机制分:

1.源码注解:编译后不存在即.class文件中不存在

2.编译时注解:编译后存在

3.运行时注解:编译后存在

按来源分:

1.来自JDK的注解

2.来自第三方的注解

3.自定义的注解

特殊的注解:元注解。用于对注解进行注释

猜你喜欢

转载自blog.csdn.net/Gamer_Lee/article/details/82882804