java 之 继承 super关键籽 this关键字 final关键字
继承
语法:
使用 extends 来继承
class子类 extends父类{
子类属性
子类方法
}
继承的特点:
1、子类会把父类所有的属性和方法继承下来,final修饰的类是不可以被继承的
2、子类还可以·拥有自己独特的属性和方法
3、父类更通用,子类更具体
4、子类只能获得父类中非private的属性,如果想要继承就得提供公共的set和get方法
私有的方法是无法继承下来的
5、java中只能做单继承
6、Java支持多级继承
继承的好处:提高代码的复用性
super关键字
1、子类实例化的过程中父类的构造器先被调用,然后在调用子类的构造器
2、子类 的构造器内被调用的时候父类的默认构造器就会被调用(父类如果存在着有参数
的构造器,一定要把默认构造器显式的定义出来,否者会被覆盖)
3、子类在调用父类有参数的构造器的时候使用 super(参数列表…)这这时父类的默认
构造器就不会被调用了
4、super()的调用必须放在方法的第一行
5、super可以表示父类的引用,我们可以使用super和this来区分父类和子类中同的属性。在子类中访问属性的查找顺序首先在子类中查找指定的属性名字,如果在子类中没有该属性,那么就去父类中去查找该属性。方法也是一样的当子类和父类有同样的方法时通过子类调用的这个相同的方法时调用的是子类的方法。但是我们也可以通过super对父类的引
来调用父类的方法。
this关键字
1、代表当前类的指定实例和引用
2、可以区分同名属性和局部变量
3、通过this可以调用同类中的构造器(this(),this(参数列表))
4、调用本类里面的属性,this.属性名,this.方法()
final关键字
属性上
final修饰在属性上,属性的值就不能被改变
语法:
权限修饰符 static final 数据类型 属性名 = 值
属性名一般使用采用大写,多个单词使用下划线来分隔。而且这种常量多定义在接口中
方法上
final修饰的方法不能被复写
语法:
权限修饰符 final 返回值类型 方法名(参数列表){
方法体
}
类上
使用final来修饰的类是不可以被继承的
语法:
final
class 类名{
}
在类中所有的private方法都隐式的指向final,可以说private、final修饰的方法在此时的效果是相同的
使用final的原因
1、锁定
2、效率
详见《java编程思想》
java 之 继承 super关键籽 this关键字 final关键字的更多相关文章
- “全栈2019”Java第一百零八章:匿名内部类与final关键字
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- JAVA核心技术I---JAVA基础知识(单例模式和final关键字)
一:单例模式 C++设计模式中提及,不再赘述设计模式---对象性能模式之单例模式(Singleton) public class single{ static single Instance=new ...
- Java学习笔记(二十三):final关键字
final关键字有三种使用场景: final修饰类 final修饰方法 final修饰变量 final修饰的类,不能再有子类继承. 只要满足以下条件就可以把一个类设计为final类: 不是专门为继承而 ...
- 夯实Java基础系列4:一文了解final关键字的特性、使用方法,以及实现原理
目录 final使用 final变量 final修饰基本数据类型变量和引用 final类 final关键字的知识点 final关键字的最佳实践 final的用法 关于空白final final内存分配 ...
- java代码继承super
总结:多态 :. 当重写父类的方法的时,子类对象名可以调用父类的方法,以及不带参的构造方法 package com.addd; public class rr { int a, b; String c ...
- 《java入门第一季》之面向对象(final关键字)
/* final可以修饰类,方法,变量 特点: final(可以修饰类),该(类)(不能被继承).一旦修饰了一个类,这个类就不能被继承了! final以修饰方法,该方法可以被继承但是不能被重写.(覆盖 ...
- Java并发指南5:JMM中的final关键字解析
本文转载自互联网,侵删 与前面介绍的锁和volatile相比较,对final域的读和写更像是普通的变量访问.对于final域,编译器和处理器要遵守两个重排序规则: 在构造函数内对一个final域的 ...
- java——super关键字、final关键字、throws关键字、访问控制
super关键字: 当父类被重写之后,子类对象无法访问父类被重写的方法,super就是为了解决这个问题: 1.使用super关键字访问父类的成员变量和成员方法: super.成员变量 super.成员 ...
- 《JAVA学习笔记 (final关键字)》
[14-9]面向对象-final关键字 /* 继承的弊端,打破封装性. 不让其他类继承该类,就不会有重写. 怎么能实现呢?通过Java中的一个关键子来实现,final(最终化). [final关键字] ...
随机推荐
- CAS / ABA
CAS / ABA 标签(空格分隔): 操作系统 1. CAS 解决 Volatile 不保证原子性的问题 /** * Atomically increments by one the current ...
- Shell:Day09-2.笔记
4.模式匹配(地址定界) 1.空值,没有定义,默认就将文件中所有的行,放入awk进行循环 2.对固定的 1,3 行进行操作 sed -n '1,3p' /etc/passwd awk '1,3 ...
- MySQL入门,第一部分,全局管理命令
1.连接数据库命令 mysql -h localhost -u root -p 回车后输入密码即可连接到数据库 2.显示当前mysql管理系统中的所有数据库 SHOW DATABASES; 3.显示当 ...
- JAVA中String和StringBuilder类的特点及使用
转自:https://www.imooc.com/code/2202 仅做个人学习记录之用,侵删! 什么是 Java 中的字符串 在 Java 中,字符串被作为 String 类型的对象处理. Str ...
- 36 Thread 多线程
/* * 多线程的实现方式: * 方式1:一种方法是将类声明为 Thread 的子类.该子类应重写 Thread 类的 run 方法.接下来可以分配并启动该子类的实例 * * Thread * Str ...
- python3(四)list tuple
# !/usr/bin/env python3 # -*- coding: utf-8 -*- # list是一种有序的集合,可以随时添加和删除其中的元素. classmates = ['Michae ...
- 08-jmeter-plugins-manager.jar插件安装
1.安装第三方插件:jmeter-plugins-manager 2.将此jar包下载好后放到jmeter的安装目录lib/ext文件夹内, 3.然后运行jmeter,选择菜单“选项”可见插件入口 4 ...
- pgsql中的lateral使用小结
pgsql中的lateral 什么是LATERAL 带有LATERAL的SQL的计算步骤 LATERAL在OUTER JOIN中的使用限制(或定义限制) LATERAL的几个简单的例子 总结 举几个我 ...
- threejs 鼠标移动控制模型旋转
<!doctype html> <html> <head> <meta charset="utf-8"> <title> ...
- L3 多层感知机
**本小节用到的数据下载 1.涉及语句 import d2lzh1981 as d2l 数据1 : d2lzh1981 链接:https://pan.baidu.com/s/1LyaZ84Q4M75G ...