java面向对象super_【JavaSE】面向对象之super、final

一、super关键字

它是一个指代变量,用于在子类中指代父类对象。

1.作用

指代父类对象

区分子父类同名的成员变量,区分父类中成员变量和子类中同名的局部变量

2.使用

与this相同,调用父类成员变量和成员方法:super.xx super.xxx()

调用父类构造器 super(xxx)

如果子类没有显示调用父类构造器,系统会默认在子类构造器首行调用父类空构造器

super.属性名//访问父类的属性

super.方法名(参数);//调用父类的方法。

super(参数);//调用父类的构造方法。

//初始化当前对象的父类型特征

super能出现在实例方法和构造方法中,不能使用在静态方法中。且大部分情况下可以省略。

super()只能出现在构造方法第一行,通过当前的构造方法去调用、"父类"中其它的构造方法,目的是:代码复用(创建子类对象的时候,先初始化父类型特征)。

建议手动写无参构造方法

一个类如果没有手动提供任何构造方法,系统会默认提供一个无参数构造方法。

一个类如果手动提供了一个构造方法,那么无参数构造系统将不再提供。

重要的结论:

当一个构造方法第一行既没有this()又没有super()的话,默认会有一个super();表示通过当前子类的构造方法调用父类的无参数构造方法。所以必须保证父类的无参数构造方法是存在的。

注意:this ()和super()不能共存,它们都是只能出现在构造方法第一行。

public class SuperTest {

public int num = 20;

public SuperTest() {

}

public SuperTest(int num) {

this.num = num;

}

public void test(){

System.out.println(num);

}

}

class superSon extends SuperTest{

private int num3 = 20;

public superSon() {

super();

}

public superSon(int num) {

this();//解决 this()和super()不能共存问题

}

}

二、final关键字

表示最终的,不可被修改的。

1.被final修饰的变量为常量(标识符规范)

可以修饰局部变量也可以修饰成员变量

public class FinalTest {

private final int num = 50;

public void test(){

final int num2 = 20;

}

}

e1ced49e0739

image.png

由图可见,在为被final修饰的变量重新赋值时,会报编译错误。

2.被final修饰后的方法不能被重写

public class FinalTest {

public final void test(){

int num2 = 20;

}

}

class FinalSon extends FinalTest{

//报编译异常,此重写不可行

/*public void test(){

}*/

}

e1ced49e0739

image.png

3.被final修饰的类不能被重写

public final class FinalTest {

public void test(){

int num2 = 20;

}

}

class FinalSon extends FinalTest{

}

e1ced49e0739

image.png

由此可见,被final修饰的类,不可被继承,所以也称这种被final修饰的类为“太监类”(没儿子 /狗头)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/396983.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mac下的svn服务器建立

MAC下的SVN服务器建立: from : http://blog.csdn.net/q199109106q/article/details/8655204 在Windows环境中,我们一般使用TortoiseSVN来搭建svn环境。在Mac环境下,由于Mac自带了svn的服务器端和客户端功能,所以我们可以在不装任何第三方软件…

php 字符串 替换 最后,php如何替换字符串中的最后一个字符

php替换字符串中的最后一个字符的方法是:可以通过preg_replace()函数来实现。该函数的语法为:【preg_replace(mixed $pattern, mixed $replacement, mixed $subject】。要替换字符串中的最后一个字符,可以通过preg_replace()函数来实现。(如果…

logback的使用和logback.xml详解

原文地址:https://www.cnblogs.com/warking/p/5710303.html#4046335 作者:行走在云端的愚公 一、logback的介绍   Logback是由log4j创始人设计的另一个开源日志组件,官方网站: http://logback.qos.ch。它当前分为下面下个模块: …

tcp协议的主要功能是什么_前端要知道的网络知识一:TCP/IP 协议到底在讲什么...

你之所以不知道那套书在讲什么,是因为你还没有认识到网络协议有什么用,怎么用,以什么形式在使用,网络协议的概念很简单,就几句话,你只知道网络协议的概念,只知道很多大神都推荐这套书&#xff0…

mysql创建定时器(event),查看定时器,打开定时器,设置定时器时间

为什么80%的码农都做不了架构师?>>> 由于项目需要创建定时器(evevt),所以就百度了一下,发现基本都是来源于一个模板,有些功能还不全,现在自己总结一下。 注:mysql版本是…

音频视频

1.IOS视频播放代码(添加MediaPlayer.framework和#import) -(void)playMovie:(NSString *)fileName{//视频文件路径NSString *path [[NSBundle mainBundle] pathForResource:fileName ofType:"mp4"];//视频URLNSURL *url [NSURL fileURLWithP…

linux内核怎么修改屏幕旋转方向_树莓派4—屏幕旋转

配置:树莓派4raspberry pi系统,HDMI显示,非触屏。问题:想将屏幕旋转90,按网上说的,方法一:在config.txt文件中添加display_rotate1,或者添加display_hdmi_rotate1,保存后…

独家直播!阿里移动前端开源框架Weex揭秘

或许你写过了很多行代码,修过许多的bug,学过各种各样的语言,却只在一个最好的时机遇见了他…… 是啥? 敲!黑!板!跟!我!念!Weex~~&…

python异常值处理实例_利用Python进行异常值分析实例代码

前言 异常值是指样本中的个别值,也称为离群点,其数值明显偏离其余的观测值。常用检测方法3σ原则和箱型图。其中,3σ原则只适用服从正态分布的数据。在3σ原则下,异常值被定义为观察值和平均值的偏差超过3倍标准差的值。P(|x−μ|…

MSSQL 发布订阅,实现读写分离

主库做增删改,从库只读。 大部分的数据库压力,都是由查询引起的,读写分离可以减轻数据库的压力。 1、在(主)数据库上对需要同步的数据进行发布。 2、在(从)数据库上对(主)数据库的发布进行订阅。 注:发布订阅都需要实际的服务器名…

Block

1、认识Block Block封装了一段代码,可以在任何时候执行Block可以作为函数参数或者函数的返回值,而其本身又可以带输入参数或返回值,它和传统的函数指针很类似,但是有区别:block是inline(内联函数)的&#x…

坚持学习WF(8):本地服务之调用外部方法

WF提供了一组核心服务,例如在SQL 数据库中存储工作流实例的执行详细信息的持久性服务,计划服务,事务服务和跟踪服务。除了这些WF也提供了另外一种服务,叫做Local Service也可以叫做Data exchange service。主要是实现工作流和宿主…

c++归并排序_合并排序法

一、合并排序(Merge Sort) 就是将多个有序数据表合并成一个有序数据表。如果参与合并的只有两个有序表,那么称为二路合并。对于一个原始的待排序序列,往往可以通过分割的方法来归结为多路合并排序。二、一个待排序的原始数据序列进行合并排序的基本思路是…

微习惯虽好,但是最重要的还是坚持

2019独角兽企业重金招聘Python工程师标准>>> “微习惯”一词是由美国的斯蒂芬盖斯提出的。他以前是个宅男,懒虫,为了改变自己而找到了这个方法。并且在自己身上实验成功。养成了好的读书、写作和健身的习惯,实现了人生的华丽转身。…

带你了解zabbix整合ELK收集系统异常日志触发告警~

今天来了解一下关于ELK的“L”-Logstash,没错,就是这个神奇小组件,我们都知道,它是ELK不可缺少的组件,完成了输入(input),过滤(fileter),output(输…

用python设计学生管理系统_Python实现GUI学生信息管理系统

本文实例为大家分享了Python实现GUI学生信息管理系统的具体代码,供大家参考,具体内容如下 项目环境: 软件环境: OS:RedHat6.3 Lib:Pygtk Language:Python Support tool:Glade3 项目简述: ①Glade3设计用户的登录窗口,功…

python理论知识选择题_Python基础自测题答案和基础知识梳理

Python基础自测题答案和基础知识梳理 1.关于Python中的lambda表达式的函数体自能是单独一条语句,所以答案选择C。 例如:>>>g lambda x: 2*x1 g(3) 7 2.Python中的变量不需要事先声明,但是需要创建和赋值,否则你怎么用&a…

查找算法之顺序查找

参考: 1. 顺序查找 | 博客园 基本思想: 顺序查找,就是从第一个元素开始,按索引顺序遍历待查找序列,直到找出给定目标或者查找失败。 特点: 1. 对待查序列(表)无要求 -- 待查找序列可…

python数据预测_python时间序列预测股票走势

提示:这只是个训练模型,技术不具备实际意义,入市需谨慎。 首先调用tushare包 import tushare as ts import pandas as pd import matplotlib.pyplot as plt 查自己比较感兴趣的股票,这里我查找的是新能源/燃料电池/氢燃料&#xf…

30.Android之百度地图简单学习

今天用了下百度地图,简单写了一个例子,记录下。 一、申请AK(API Key) 要想使用百度地图sdk,就必须申请一个百度地图的api key。申请流程挺简单的。 首先注册成为百度的开发者,然后打开http://lbsyun.baidu.…