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,一经查实,立即删除!

相关文章

Week_1_Physical Electronics and Semiconductors

Semiconductors Fundamentals Type of solids 转载于:https://www.cnblogs.com/ronnielee/p/9579783.html

【Linux高频命令专题(23)】tar

概述 通过SSH访问服务器,难免会要用到压缩,解压缩,打包,解包等,这时候tar命令就是是必不可少的一个功能强大的工具。linux中最流行的tar是麻雀虽小,五脏俱全,功能强大。 tar命令可以为linux的文…

2. Add Two Numbers

直接用一个carry记录进位就可以 1 //NEW2 class Solution {3 public ListNode addTwoNumbers(ListNode l1, ListNode l2) {4 ListNode root new ListNode(0);5 return addTwoNumbers(l1, l2, root);6 }7 public ListNode addTwoNumbers(ListNode …

安装Windows更新程序遇到错误:0x80070422

看看服务那里 windows update服务是不是被禁用了? 还有一个问题可能是由于Windows Modules Installer被禁用了。

谈谈对python的理解_浅谈对python pandas中 inplace 参数的理解

这篇文章主要介绍了对python pandas中 inplace 参数的理解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧 pandas 中 inplace 参数在很多函数中都会有,它的作用是:是否在原对象基础上进行修改 inplace True&am…

java中 hashset_Java中的HashSet

HashSet扩展AbstractSet并实现Set接口。它创建一个使用哈希表进行存储的集合。哈希表通过使用称为哈希的机制来存储信息。在散列中,键的信息内容用于确定唯一值,称为其散列码。然后,将哈希码用作存储与键关联的数据的索引。键到其哈希码的转换…

mac下的svn服务器建立

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

SQL手册

一.SQL简介 二.SQL数据类型 三.SQL语法 四.SQL SELECT语句 五.SQL INSERT语句 六.SQL UPDATE语句 七.SQL DELETE语句 八.SQL DROP语句 九.SQL CREDTE语句 十.SQL ALTER 语句总结 十一.SQL事务 十二.函数总结 十三.数据库其他操作 十四.MySQL 、SQL MS Access、和 SQL Server 数…

python语音合成并播放_使用Python实现文字转语音并生成wav文件的例子

目前手边的一些工作,需要实现声音播放功能,而且仅支持wav声音格式。 现在,一些网站上支持文字转语音功能,但是生成的都是MP3文件,这样还需要额外的软件来转成wav文件,十分麻烦。 后来,研究Pytho…

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

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

生日转换成星座

/// <summary>/// 生日转换成星座/// </summary>/// <param name"birthday"></param>/// <returns></returns>public static string GetAstro(DateTime birthday){string value string.Empty;int month birthday.Month;int da…

logback的使用和logback.xml详解

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

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

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

php统计字符个数,php中3种方法统计字符串中每种字符的个数并排序

//这个方法纯粹是背函数&#xff0c;不解释&#xff1b;function countStr($str){$str_arraystr_split($str);$str_arrayarray_count_values($str_array);arsort($str_array);return $str_array;}//以下是例子&#xff1b;$str"asdfgfdas323344##$\$fdsdfg*$**$*$**$$4435…

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

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

音频视频

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

二分查找、变形及应用

[LeetCode] 35 Search Insert Position 题目 Given a sorted array and a target value, return the index if the target is found. If not, return the index where it would be if it were inserted in order.You may assume no duplicates in the array. 测试案例 Input: […

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

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

周记随笔-php5.6与apache2.4的windows32安装

原材料&#xff1a;php.net , httpd.apache.org/download.cgi Apache的安装 &#xff0c;在下载页面有依赖关系的说明 。 下载对应版本的压缩包&#xff0c;解压至目标目录&#xff0c;例如D盘根目录&#xff0c;首先修改配置 1 serverRoot: ServerRoot "c:/Apache24"…

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

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