访问控制权限
Java中用来控制类及类的方法和变量访问权限(public,private,protected,default)
1. public:(公共的)表示包(package)内及包外的任何类(包括子类和普通类)都可以访问
2. protected:(受保护的)表示包内的任何类及包外继承了该类的子类才能访问,突出继承
3. default:(默认的)表示包内的任何类都可以访问,但是包外的任何类都不能访问
4. private:(私有的)只有本类可以访问,包内外的任何类均不能访问——封装
| 访问控制修饰符 | 同类 | 同包 | 子类 | 不同的包 |
|---|---|---|---|---|
| public | 1 | 1 | 1 | 1 |
| protected | 1 | 1 | 1 | 0 |
| default | 1 | 1 | 0 | 0 |
| private | 1 | 0 | 0 | 0 |
多态
多态分为编译时的多态和运行时多态。其中编译时多态可称为静态多态,运行时多态为动态多态,主要通过动态绑定实现,常规默认的多态
多态为了应对不同的表现形式
静态多态
静态多态就是方法的重载,主要根据参数列表的不同来区分不同的函数
静态多态不需要继承
动态多态
动态多态就是指引用在不同的情况下所表现的实际对象- 继承(实现接口),在多态中必须存在父类与子类的关系
- 重写,子类必须面对父类的某些方法进行重新定义,在调用这些方法时,就会调用子类的方法
- 向上转型:父类引用指向子类的对象
向上转型
向上转型:子类的对象转换为父类类型
Person person = new Teacher(); //向上转型
子类的单独定义的方法会丢失,能访问子类重写父类的方法
向下转型
向下转型是把父类对象转化为子类对象
向下转型必须得有向上转型作为前提。因为只有子类相对应的才可以转换
Person person = new Teacher(); //向上转型
Teacher teacher = (Teacher) person; //向下转型
包装类
为了支持Java语言面向对象的特性,基本数据类型中的每一个在java.lang包中都有一个对应的包装类,即将每个基本类型都包装成了一个类
| 访问控制修饰符 | 同类 |
|---|---|
| byte | java.lang.Byte |
| short | java.lang.Short |
| int | java.lang.Integer |
| long | java.lang.Long |
| float | java.lang.Float |
| double | java.lang.Double |
| char | java.lang.Char |
| boolean | java.lang.Boolean |
包装类和基本类型的转换
(1)基本类型转换成包装类,称为装箱操作
//定义int类型变量
int a = 1;
//手动装箱
Integer b = new Integer(a);
Integer c = Integer.valueof(a);
//自动装箱
Integer c = a;
(2)包装类转换成基本类型,称为拆箱操作
//定义Integer类型的包装类对象
Integer a = new Integer(1);
//手动拆箱
int b = a.inValue();
//自动拆箱
int c = a;
本文深入解析Java中的访问控制权限(public, private, protected, default)及其在类、方法和变量上的应用,并探讨多态的概念,包括静态多态(方法重载)和动态多态(方法重写),以及向上转型和向下转型的使用场景。
771

被折叠的 条评论
为什么被折叠?



