/*final可以修饰类,方法,变量特点:final(可以修饰类),该(类)(不能被继承)。一旦修饰了一个类,这个类就不能被继承了!final以修饰方法,该方法可以被继承但是不能被重写。(覆盖,复写)final可以修饰变量,该变量可以被继承但是不能被重新赋值。因为这个变量其实是常量。常量:A:字面值常量"hello",10,trueB:自定义常量final int x = 10;
*///final class Fu //无法从最终Fu进行继承,final是最终类,最终类是无法被继承的哦class Fu {public int num = 10;public final int num2 = 20;}class Zi extends Fu {public void show() {num = 100;//注意这里是,num=100;不是int num = 100.该语句改变了num的值,即使使用super.num结果仍然是100(因为被重新赋值了)。没有被final修饰,不是最后的变量,还可以被重新赋值。System.out.println(this.num);System.out.println(super.num);//无法为最终变量num2分配值,该变量不能被重新赋值。因为这个变量其实是常量//num2 = 200;System.out.println(num2);}
}class FinalDemo {public static void main(String[] args) {Zi z = new Zi();z.show();}
}
/*final修饰变量的初始化时机A:被final修饰的变量只能赋值一次。B:在构造方法完毕前。(条件是非静态的常量)
*/
class Demo {//int num = 10;//final int num2 = 20;//常量,无法为最终变量num2分配值int num;final int num2;//这样定义再给值是没有问题的{num2 = 10;//num2赋值只能给一次}public Demo() {num = 100;//无法为最终变量num2分配值num2 = 200;}
}class FinalTest2 {public static void main(String[] args) {Demo d = new Demo();System.out.println(d.num);System.out.println(d.num2);}
}
/*继承的代码体现由于继承中方法有一个现象:方法重写。所以,父类的功能,就会被子类给覆盖调。有些时候,我们(不想让子类去覆盖掉父类的功能),(只能让他使用),final修饰之后只能被继承不能被重写。这个时候,针对这种情况,Java就提供了一个关键字:finalfinal:最终的意思。常见的是它可以修饰类,方法,变量。
*/
class Fu {public final void show() {System.out.println("这里是绝密资源,任何人都不能修改");}
}class Zi extends Fu {// Zi中的show()无法覆盖Fu中的show(),父类中的方法加上final后,子类没法对该方法进行重写了.报错public void show() {//报错System.out.println("这是一堆垃圾,你重写show方法就回报错");}
}class ZiDemo {public static void main(String[] args) {Zi z = new Zi();z.show();}
}

《java入门第一季》之面向对象(final关键字)相关推荐

  1. 《java入门第一季》之面向对象(static关键字)

    /*static的特点:(它可以修饰成员变量,还可以修饰成员方法)A:随着类的加载而加载回想main方法.B:优先于对象存在C:被类的所有对象共享举例:班级的学生应该共用同一个班级编号.其实这个特点也 ...

  2. 《java入门第一季》之面向对象this关键字

    /*起名字要做到见名知意.this:是当前类的对象引用.简单的记,它就代表当前类的一个对象.注意:谁调用这个方法,在该方法内部的this就代表谁.this的场景:解决局部变量隐藏成员变量 */ //定 ...

  3. 《java入门第一季》之面向对象面试题(继承中构造方法的关系)

    /*继承中构造方法的关系A:子类中所有(子类的有参和无参)的构造方法(默认都会访问父类)中(空参数)的构造方法,默认访问父类空参数构造,不默认访问有参数构造B:为什么呢?因为子类会继承父类中的数据,可 ...

  4. 《java入门第一季》之面向对象(包概述)

    由于eclipse等ide的强大功能,使得建包,导包用一些快捷键就能完成.这里对包的概念做稍微的叙述,了解即可: 分包后使得项目更加清晰,提高代码维护性. 包:         A:其实就是文件夹   ...

  5. 《java入门第一季》之面向对象

    之前的代码描述都是基于面向过程的,今天开始正式进入面向对象的世界.什么是对象?首先要区分类和对象的概念-- 现实世界中是如何描述一个事物的? 举例:学生 姓名,年龄,性别... 学习,吃饭,睡觉 属性 ...

  6. 《java入门第一季》之面向对象(继承总结)

    继承已经全部写完了,接下来通过几个案例对继承问题做一个总结: /*看程序写结果:A:成员变量 就近原则B:this和super的问题this访问本类的成员super访问父类的成员C:子类构造方法执行前 ...

  7. 《java入门第一季》之面向对象综合小案例

    需求: /*     教练和运动员案例         乒乓球运动员和篮球运动员.         乒乓球教练和篮球教练.         跟乒乓球相关的人员都需要学习英语.         分析,这 ...

  8. 《java入门第一季》之java语法部分小案例

    到这里举一个小例子把语法部分梳理一下,下一节开始进入java正式基础--面向对象的学习整理. 案例: /*某个公司采用公用电话传递数据信息,数据是小于8位的整数,为了确保安全,在传递过程中需要加密,加 ...

  9. 慕课网Java入门第一季教程(六)数组

    目录 什么是数组 如何使用数组 1.声明数组 2.分配空间 3.赋值 4.直接创建数组并赋值 使用循环操作数组 使用 Arrays 类操作 Java 中的数组 1.排序 2.将数组转换成字符串 使用f ...

最新文章

  1. 裁剪Linux小系统
  2. C++语言之一个派生类继承了所有的基类方法,但下列情况除外
  3. 【STM32】中断优先级管理
  4. PrimerCH3字符串,向量,迭代器,数组
  5. 【转】五大方法,彻底永久关闭win10自动更新的方法【已验证有效】
  6. Fragment标签页+OKHttp网络请求数据+MVP模式
  7. Anbox之android OpenGLES模拟器设计(八)
  8. OpenCV中的width与widthStep
  9. 拟合函数、曲线拟合有这个网站足够了
  10. 新浪微博开放平台_Xweibo,修改设置…
  11. visio安装报错 1:1935 2:{XXXXXXXX...
  12. LED 发光二极管工作电流分析
  13. Unity与操纵杆硬件设备通信(读取硬件数据)
  14. Ubuntu16.04常用工具
  15. 经典贪吃蛇大战逆向_游戏内购
  16. 如何将文件FLAC格式快速转换为MP3格式
  17. 51单片机DAC数模转换
  18. Android手机目前常见的分辨率
  19. 利用 Google API 调用谷歌地图 演示1
  20. MatLab函数:pol2cart()

热门文章

  1. java编程规范心得
  2. thinkpad t430u win10小红点无反应/停止响应
  3. centos 7部署并汉化Gitlab及基础操作
  4. 又一个10年来学习的回忆
  5. 【人工智能】清华大学张钹院士:人工智能技术已进入第三代
  6. 如何在iOS应用中更好的调试H5页面
  7. 机器学习-感知机perceptron
  8. 俄罗斯儿童摄影师LR预设加教程
  9. 基于python Django机器学习的二手房交易预测及展示系统 完整代码 毕业设计
  10. 九章计算机排名,中国再次传出喜讯 成功领先世界各国,“九章”计算机成功问世!...