- “通过 private、default 、protected、 public 关键字实现属性或⽅法的封装, 仅 对外提供公共 访问⽅式 。
封装的好处:
-
实现数据项和⽅法的隐藏
-
实现隐藏隔离,允许外部对类做有限的访问,开发者可以⾃由的改变类的内部实现
-
提⾼了代码的重⽤性
二、继承
- 通过 extends 。
两个好处:
-
代码重⽤
-
通过继承 实现对现实世界更加准确的建模
class ⽗类 {
}
class ⼦类 extends ⽗类 {
----继承了之后有⽗类(⾮私有)的属性或⽅法
----重写⽗类⽅法
}
三、多态
-
⼀个对象变量可以指向多种实际类型对象的现象被称为“多态”, 多态是同⼀个⾏为具有多个不同表现形式或形态的能⼒。
-
⽐如 ⽗类是 打印机
-
⼦类分为 彩⾊打印机 ⿊⽩打印机 3D打印机
-
但他们都是打印机类的,这就是多态
三个必要条件:
-
继承
-
⽅法的重写
-
⽗类引⽤指向⼦类对象(⾸先检查⽗类中是否有该⽅法,如果没有,则编译错误;如果有,再去调⽤⼦类 的同名⽅法。)
在使用多态后的父类引用变量调用方法时,会调用子类重写后的方法。
多态的定义与使用格式:
父类类型 变量名=new 子类类型();
多态中成员的特点:
1.多态成员变量:编译运行看左边
Fu f=new Zi();
System.out.println(f.num);//f是Fu中的值,只能取到父中的值
2.多态成员方法:编译看左边,运行看右边
Fu f1=new Zi();
System.out.println(f1.show());//f1的门面类型是Fu,但实际类型是Zi,所以调用的是重写后的方法。
编译时多态和运行时多态:
在调用一个方法时,从源代码上看,无法确定调用了哪个对象的方法。只有在程序运行期间根据对象变量引用的实际对象才能确定此方法是
哪个对象的。这种现象称之为动态绑定 (联编)。
结论: 动态绑定的前提是:
-
发生继承,且一个父类有多个子类。
-
在每一个子类中对继承自父类的同一个方法实现了重写。
-
发生多态,即: 父类对象变量引用了不同的子类对象。
-
父类的对象变量调用了重写的方法,即: 发生了动态绑定。从而实现了多的价值。
具体可参考 Java 编译时多态和运行时多态_若明天不见-CSDN博客_java运行时多态和编译时多态
多态的转型:
-
多态的转型分为向上转型和向下转型两种
-
向上转型 :多态本身就是向上转型过的过程
-
使用格式: 父类类型 变量名=new 子类类型();
-
适用场景:当不需要面对子类类型时, 通过提高扩展性(可引用子类的重写过的父类方法) ,或者使用父类的功能就能完成相应的操作。
class A {
public void print() {
System.out.println(“A:print”);
}
}
class B extends A {
public void print() {
System.out.println(“B:print”);
}
最后
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!**
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!