概述
继承
继承就是 让 其他的类 都含有 某个类里面的属性 或者方法 并且还可以再自己的类中追加
public zi extends fu class{
}
父类 ===>被称为 基类 跟 超类
子类 ===>被称为 派生类
字类可以继承 父类的方法
也可以 使用自己的方法
继承的好处
把代码 都封装到 父类 (基类,超类里面)==>提高了代码的复用性
提高了 代码的 维护性 ===>若果多处需要修改 只需要修改一处就好了
继承的弊端
继承 让父类 与子类 产生了联系 类的耦合性增加了 当父类发生改变的时候 字类也要跟着改变 降低了 子类的 独立性
什么时候用继承
继承 就是 is a 的意思
当类与 类之间 可以存在 A 属于 B 或者 B属于 A 的状态 后 可以使用继承
比如 苹果 ===>水果 猫====>动物 但是 狗 跟 猫就不可以了
继承中的属性 使用
两个字 ====>就近原则
若果没有属性 就会报错
this super
this 是用来 修饰 成员变量的 ==>
super 是用来修饰 父类的成员变量的
继承中 构造函数的特点
子类 继承 父类 后 ===>
如果 创建对象
Son son = new Son();
默认去调用 父类的无参构造方法 因为创建 子类对象 需要默认初始化父类的数据
不论 字类 是 通过 无参构造方法 创建的对象 还是 通过有参数构造方法创建的对象
都会去默认去掉 父类的 无参构造方法
如果 没有 无参构造方法 ==>被注释掉了 就会i报错 我们可以通过
super去调用父类的有参构造方法 去初始化 父类的数据 手动完成
或者 自己手动创建 无参构造方法
继承中的方法调用
继承中 方法的调用 子可以 调用 父亲的
当子与 父 都有的时候 ===>会出现就近原则 先调用 自己的
我们可以 通过 super调用 父亲的方法
super内存图
super的运行内存图 方法 都是 加载到栈内存
new 后面的 都是加载 到 堆内存
方法一个一个的 执行执行完毕后 出栈
方法的重写 父亲--->子类
当 子类 继承 ===>父类的方法 比如 手机 与新手机
本来手机 就有 打电话功能 叫 call() 方法
我们的子类 方法 继承 父类 并且 也使用 call()方法的名字 再此方法上 更新 就是方法的重写
@overread 是方法的重写检查
方法的重写 注意事项
私有的方法是 不能被重写的
子类的重写的方法 只要 修饰符权限比 父类的高 就可以
private preated public 私有的 受保护的 公共的
java中的继承 事项
java 中只支持 单继承 不支持 多继承
java 中可以有多层继承
案例 老师跟学生类
写 公共的继承类 ====>然后 属性一样 都是继承的父亲类
方法有自己公用的
猫跟狗
公共类
package 继承;
public class Animal {
private String name;
private int age;
public void run (){
System.out.println("我们都是动物都会跑");
}
public Animal() {
}
public Animal(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
猫类
package 继承;
public class Cat extends Animal{
public void zhuaMose(){
System.out.println("我会抓老鼠");
}
}
狗
package 继承;
public class Dog extends Animal{
public void kanmen(){
System.out.println("我会看家");
}
}
包的使用
import 导入包
如果 ==>导入的东西 差异的包
我们可以用 import 导包 就可以 不用繁琐的写法了
不同修饰符 权限
不同包的子类 ===>受保护的 公共的 ===
不同包的无关类===>公共的
final 修饰符
final 修饰的基本变量 ===>值不可以改变 变成了 常量
final 修饰的 引用变量 ====>也是值不能改变 Student s 才是 地址值 (值)===>
s没有发生改变 s.age =是这个地址值的内容发生变化 所以可以
但是不可以继续 new Student() 了
Static 静态修饰符
他是用来修饰 类中的 共享 数据的 (比如这个类有好多对象 不同的对象,有一个属性都是相同的 就可以用 Static 来修饰==>就可以共享了 ,静态修饰的变量 可以用 类名来修饰 也可以用对象名字来修饰 ===>推荐使用 类名来修饰
记住 (再类中 的变量 要加修饰符 static 静态常量 啊)
static 静态 访问特点
非静态的 方法可以访问 静态的变量 也可以访问非静态的变量 以及方法
静态的 方法 可以只可以访问静态的 别的都不可以
最后
以上就是俏皮魔镜为你收集整理的java基础 继承修饰符的全部内容,希望文章能够帮你解决java基础 继承修饰符所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复