关于对于java中的多态和final修饰符的总结
目录
1.面向对象的三大特性:
封装、继承、多态
2.多态:
定义:多态是同一个行为具有多个不同表现形式或形态的能力。简单来讲就是“一个接口,多种实现”,就是同一种事物表现出的多种形态。
问:什么是多态?
答:指对象可以有多种形态。
问:多态的常见形式:

2.1多态中成员访问特点:
- 成员方法调用:编译看左边,运行看右边。
- 成员变量调用:编译看左边,运行也看左边。(注意)
2.2多态的前提:
- 有继承/实现关系;有父类引用指向子类对象;有方法重写(多态侧重行为多态)。
- 继承:必须有继承或者是接口实现(在多态中必须存在有继承关系的子类和父类)
- 重写:必须有方法的重写(子类对父类中某些方法进行重新定义,在调用这些方法时就会调用子类的方法)
- 向上转型:在多态中需要将子类的引用赋给父类对象,只有这样该引用才既能可以调用父类的方法,又能调用子类的方法。
2.3多态的语法:
父类 变量/对象名 = new 子类对象(); //多态写法
Person p = new Student();
对象调用方法,执行的子类的方法重写
2.3多态的优势:
- 在多态形式下,右边对象可以实现解耦合,便于扩展和维护。
- 定义方法的时候,使用父类型作为参数,该方法就可以接收这父类的一切子类对象,体现出多态的扩展性与便利。
多态下会产生的一个问题:
- 多态下不能使用子类的独有功能
2.4多态的转型:
3.final修饰符:
- final 关键字是最终的意思,可以修饰(类、方法、变量)
- 修饰类:表示该类不能有子类,即该类不可以被继承。表明该类是最终类。
- 修饰方法:表示方法不可以被重写。表明该方法是最终方法。
- 修饰变量:表示变量的值不可以改变,此时该变量可以被称为常量。表明该变量第一次赋值后,不能再次被赋值(有且仅能被赋值一次)。
3.1final修饰变量的注意
- final修饰的变量是基本类型:那么变量存储的数据值不能发生改变。
- final修饰的变量是引用类型:那么变量存储的地址值不能发生改变,但是地址指向的对象内容是可以发生变化的。
3.2final修饰符的使用总结:
- final修饰类
被final修饰的类,称为最终类,不能被其他的类继承,无子类. 太监类
- final修饰方法
说明这种方法提供的功能已经满足当前要求,不需要进行扩展,并且也不允许任何从此类继承的类来重写这种方法,但是继承仍然可以继承这个方法,也就是说可以直接使用。在声明类中,一个 final 方法只被实现一次。
- final修饰局部变量(变量定义在方法的内部,是局部变量)
final修饰的基本类型,锁死值 final int i =0; 再赋值就错了,但是可以做加减乘除。
final修饰的引用类型,锁死内存地址 (引用类型中的成员不受影响)
- final修饰成员变量
成员变量的定义位置,是在类中,方法外面。但是成员变量在内存中有默认值,final修饰成员变量的时候,锁住的不是内存默认值,而是我们程序人员手动的赋值。
其初始化可以在两个地方:一是其定义处,也就是说在 final 变量,定义时直接给其赋值;二是在构造方法中。这两个地方只能选其一,要么在定义时给值,要么在构造方法中给值,不能同时既在定义时赋值,又在构造方法中赋予另外的值。