java三大特性之多态
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java三大特性之多态相关的知识,希望对你有一定的参考价值。
final关键字
class Fu{ publicvoid show(){ System.out.println("这是绝密资料,任何人不能修改"); } } class Zi extends Fu{ publicvoid show(){ System.out.println("这是一堆垃圾"); } } publicclass FinalDemo { publicstaticvoid main(String[] args) { Zi z = new Zi(); z.show(); } } |
继承的代码体现,由于继承中方法有一个现象:方法重写。所以,父类的功能,就会被子类给覆盖。有些时候,我们不想让子类去覆盖掉父类的功能,这时候,针对这种情况,Java就提供了一个关键字:final关键字。
class Fu{ publicfinalvoid show(){ System.out.println("这是绝密资料,任何人不能修改"); } } class Zi extends Fu{
} publicclass FinalDemo { publicstaticvoid main(String[] args) { Zi z = new Zi(); z.show(); } }
|
final关键字是最终的意思,可以修饰类,成员变量,成员方法。
final关键字修饰类,类不能被继承。
final关键字修饰变量,变量就变成了常量,只能被赋值一次。
final关键字修饰方法,方法不能被重写。
final修饰局部变量
publicclass FinalDemo { publicstaticvoid main(String[] args) { intx = 0; x = 10; finalinty = 100 ; //y = 200;错误 System.out.println(x); System.out.println(y); } } |
class Student{ finalintage = 10;
} publicclass FinalDemo { publicstaticvoid main(String[] args) { //局部变量是基本数据类型 intx = 0; x = 10; finalinty = 100 ; //y = 200;错误 System.out.println(x); System.out.println(y);
//局部变量是引用数据类型 Student stu = new Student(); //stu.age = 20;错误 System.out.println(stu.age); } }
|
final修改基本类型:基本类型的值不能发生改变。
final修饰引用类型:引用类型的地址值不能发生改变。但是,该对象的堆内存的值是可以发生改变的,除非该对象的堆内存的值也是final的。
final修饰变量的初始化时机
class Student{ finalintage ; { age = 20; }
} publicclass FinalDemo { publicstaticvoid main(String[] args) { //局部变量是基本数据类型 intx = 0; x = 10; finalinty = 100 ; //y = 200;错误 System.out.println(x); System.out.println(y);
//局部变量是引用数据类型 Student stu = new Student(); //stu.age = 20;错误 System.out.println(stu.age); } }
|
class Student{ finalintage ; public Student(){ age = 20; } } publicclass FinalDemo { publicstaticvoid main(String[] args) { //局部变量是基本数据类型 intx = 0; x = 10; finalinty = 100 ; //y = 200;错误 System.out.println(x); System.out.println(y);
//局部变量是引用数据类型 final Student stu = new Student(); //stu.age = 20;错误 System.out.println(stu.age); //stu = new Student();报错 } }
|
被final修饰的变量只能赋值一次。
多态概述
某一个事物,在不同时刻表现出来的不同状态。
例如:
猫可以是猫类型,猫 m =new 猫();
同时猫也是动物的一种,也可以把猫称为动物。动物 d = new 猫();
水在不同时刻有不同的状态。
多态的前提和体现:
有继承关系,有方法重写,有父类引用指向子类对象
多态中的成员访问特点:
成员变量:编译看左边,运行看左边。
构造方法:创建子类对象时候,访问父类的构造方法,对父类的数据进行初始化。
成员方法:编译看左边,运行看右边。
由于成员方法存在方法重写,所以运行看右边。
多态的好处:1.提高了程序的维护性 2.提高了程序的扩展性
多态的弊端:不能访问子类特有功能,那么我们如何才能范文子类特有功能尼?多态的转型。
本文出自 “11831428” 博客,请务必保留此出处http://11841428.blog.51cto.com/11831428/1856777
以上是关于java三大特性之多态的主要内容,如果未能解决你的问题,请参考以下文章