java 面向对象基本特征 — 继承
继承(Extends)
🍃封装就是使用抽象思维抽象出来一个类,这个类里面有自己的一些属性和方法,则这个类叫 父类;如果有其他类要使用这个类里面的方法或属性,则这些其他类叫做 子类 ,那么子类就可以通过继承来拿到父类里面的一些属性或方法,这个过程就叫继承;
当然,继承不是可以拿父类的所有东西,他只能拿到父类里面定义公有的一些属性或方法,对于父类里面一些私有化属性或方法则不能拿到;子类也可以把父类的方法进行重写,也可以在父类的基础上追加属性和方法。
注意:java 中的继承是单继承,也就是说只能继承一个类。
🍃继承的特点:
实现属性和方法的共享:子类就可以直接拿到父类的公有属性和方法;
提供代码的复用:多个类如果他们具有共同的属性和方法的时候,那么就可以抽象出来一个 父类,其他的那些类就可以去继承这个父类;
提高代码的维护性:如果方法代码需要修改时,那么只需要修改父类即可,子类直接继承即可。
🍃继承的缺点:
当类与类之间有了继承关系之后,关系紧密,那么他们之间就是高耦合;当父类发生变化时,子类也不得不跟着变化,这样子类则没有独立性。
下面我用代码实现来展示具体操作:
Father类:
//这是父类
public class Father {
// 声明公有属性
public int fid;
public String fname;
public int age;
public String address;
// 创建公共方法
public void showInfo(){
System.out.println("这是父类里面的showInfo方法!!!");
}
}
Son类:
//这是子类 --- 它需要继承父类
public class Son extends Father{
}
Test类:
public class Test {
public static void main(String[] args) {
// 创建一个Father父类对象
Father father = new Father();
// 创建一个子类对象
Son son = new Son();
son.fid = 001;
son.fname = "玛卡巴卡";
son.age = 21;
son.showInfo();
}
🍃这是在调用的时候能拿到父类的方法和属性:
🍃实现效果:
🍃存在继承关系后调用属性的顺序:
子类需要访问一个属性的时候,它首先会在自己的类里面找,找不到它才去父类里面找,如果都没有,那么就报错。
🍃继承中的关键字:
Super :它指向的是父类,用法与this相似,只是指定的对象不一样;
This:它代表当前自己的引用的类;
它们两个都可以访问一般方法和构造方法;
package com.polymorphism;
//这是父类
public class Father {
// 声明公有属性
public int age = 55;
}
class Zi extends Father {
public int age = 23;
public void show() {
System.out.println("this:" + this.age);
System.out.println("super:" + super.age);
}
}
今天的分享就到这里啦,小江会一直与大家一起努力,文章中如有不足之处,还请指出哦,感谢支持,持续更新中 ……