继承:
**使用extends指定父类(基类、超类)
Java中一个子类(派生类)只能有一个父类
子类继承父类除构造函数以外的所有东西
对于父类的private修饰的字段,子类无法直接访问
如果子类要实例化必须先实例化父类,就是说用子类的构造函数必须先调用父类的构造函数**
class Animal {
public String name;
public Animal(String name) {
this.name = name;
}
public void eat(String food) {
System.out.println(this.name + “正在吃” + food);
}
}
class Cat extends Animal {
public Cat(String name) {
// 使用 super 调用父类的构造方法.
super(name);
}
}
class Bird extends Animal {
public Bird(String name) {
super(name);
}
public void fly() {
System.out.println(this.name + “正在飞 ︿( ̄︶ ̄)︿”);
}
}
public class Test {
public static void main(String[] args) {
Cat cat = new Cat(“小黑”);
cat.eat(“猫粮”);
Bird bird = new Bird(“圆圆”);
bird.fly();
}
}
**super:(父类对象的引用)
super() 表示调用父类的构造函数
super.data表示调用父类的属性
super.fun()表示调用父类的方法**
**final:
final修饰变量,使变量变成常量
final修饰类,叫做密封类,不能直接被继承
final修饰方法,不可被重写**
**组合:
继承就是 XX is a YY
组合就是 XX has a YY**
**向上转型:
父类引用子类对象
方式:
直接赋值
方法传参
方法返回值
但要注意:通过父类引用,只能引用父类自己的方法和属性**
public class Test {
public static void main(String[] args) {
Bird bird = new Bird(“圆圆”);
feed(bird);
}
public static void feed(Animal animal) {
animal.eat(“谷子”);
}
}
// 执行结果
圆圆正在吃谷子
public class Test {
public static void main(String[] args) {
Animal animal = findMyAnimal();
}
public static Animal findMyAnimal() {
Bird bird = new Bird(“圆圆”);
return bird;
}
}
**向下转型:
使用向下转型不安全,因为要发生向下转型就必须发生过向上转型。**
**方法重写(override):
重写与重载不同的是重写三个要求(方法名、参数列表、返回值)都得相同,而且重写是在继承关系上**
最后
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Java开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
论你是刚入门Java开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!**
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!