javaSE 笔记 继承 + super + 包 + import + 修饰符 + final + static
2021/8/18 14:36:08
本文主要是介绍javaSE 笔记 继承 + super + 包 + import + 修饰符 + final + static,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
继承
例子:public class Zi extends Fu { }
子类可以使用父类的属性和方法(暂不讨论权限修饰符)
继承可以提高代码的复用性和维护性,但是也因此让父类,子类直接耦合性增强,父类变化,子类也会变化,所以看情况使用。
继承中子类变量,成员方法的访问特点:子类局部范围->子类成员范围->父类成员范围->都没有就报错(排除父亲的父亲)
目前看到的例子都是子类继承了父类的一些构造方法,感觉还是有点low,得多见识见识。
super
this 本类对象引用 ; super 父类对象引用
当子类中的局部变量与成员属性名字相同,通过调用this.age就可以使用成员属性的值;如果子类中的局部变量与父类的成员属性名字相同,通过调用super.age就可以使用父类成员属性的值。成员方法同理,super.call(name)
- 子类一开始默认有super(),即调用父类的无参构造方法,不过还是推荐子类自己定义自己的无参构造方法。
- 当子类和父类中有相同的成员变量的时候,在堆内存,两者是保存在不同的内存空间中的。黑马视频课P156。
- 如果子类既想要自己的特殊方法,直接方法重写就好了
子类重写注意事项
子类重写的方法的访问权限不能比父类低
子类继承注意事项
与C++不同的吕布继承法不同,java支持单继承,不支持多继承,但是支持多层继承,就是套娃。
包
例子 package com.itlcy 多级包用.分开
带包的类 直接javac编译可以,但是java运行不行,要么手动导包,将HelloWorld.class文件放到包的里面,要么自动导包,在编译的时候用java -d . HelloWorld.java ,加上这个-d之后就能够将class文件自动生成在包的目录下。
import导包
不导包:java.util.Scanner sc = new java.util.Scanner(System.in)
导包: import java.util
Scanner sc = new Scanner(System.in) 即可以直接用Scanner类
修饰符
|修饰符|同类|同类不同包|不同包子类|不同包非子类|
|private| √ | × | × | × |
|default| √ | √ | × | × |
|protected| √ | √ | √ | × |
|public| √ | √ | √ | √ |
从下到上看的话,权限越来越小
final
父类中被final修饰的方法,在子类中是不可以被重写的。
final 修饰的成员变量也不能再改变。
final 修饰类,不能再被继承,断子绝孙了。。
final和const十分像,看其修饰的到底是值还是地址,修饰谁,谁就不能再改变了。
static
类的一个成员被static修饰后,相当于所有对象共享这一个变量。
静态成员方法只能访问静态成员变量和静态成员方法,非静态的啥都能访问。
这篇关于javaSE 笔记 继承 + super + 包 + import + 修饰符 + final + static的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-15鸿蒙生态设备数量超8亿台
- 2024-05-13TiDB + ES:转转业财系统亿级数据存储优化实践
- 2024-05-09“2024鸿蒙零基础快速实战-仿抖音App开发(ArkTS版)”实战课程已上线
- 2024-05-09聊聊如何通过arthas-tunnel-server来远程管理所有需要arthas监控的应用
- 2024-05-09log4j2这么配就对了
- 2024-05-09nginx修改Content-Type
- 2024-05-09Redis多数据源,看这篇就够了
- 2024-05-09Google Chrome驱动程序 124.0.6367.62(正式版本)去哪下载?
- 2024-05-09有没有大佬知道这种数据应该怎么抓取呀?
- 2024-05-09这种运行结果里的10.100000001,怎么能最快改成10.1?