前言
一说到继承,往往想到,子嗣继承长辈的家产。长辈的家产一分不少的继承给子嗣,子嗣又有额外的财富,额外的财富变成了家产的一部分,就这样一代代的继承,家族的财富越滚越大。java中“继承”的使用也是一样的。
一、继承是什么?
继承,是一种类与类之间的传承关系,父类的属性和方法都会传承给子类,子类可以直接调用,根据需要,补充新的属性和方法,或者复写父类的属性和方法。
父类:类似于父亲的存在。 子类:类似于儿子的存在。
复写:指在子类中更改父类的属性和方法(父类中使用,仍是未更改的属性方法,但从子类开始,调用的都是更改过的)
//子类:我做了一个违背祖宗的决定
注:一个子类只继承一个父类的属性和方法,吕布认贼作父的手段在java中是不适用的。
只能B类继承A类,C类继承B类,像一个家族一样,世世代代继承下来。
二、使用方法
1.关键字
(1)extends 关键字:子类继承父类的属性和方法
语法: Chlid extends Parents
public class Child extends Parents{ //Child类继承Parents类的属性和方法 ...... }
(2)super 关键字:解决子类复写父类方法,无法调用父类本有方法的问题
语法:super.property; //调用父类原本属性
super.method(); //调用父类原本方法
public class Child extends Parents{ super(); //调用父类的全部方法 super.action(); //调用了父类某个方法 super.attribute; //调用了父类某个属性 }
2.实操展示
情景展示:企业A,生产了台式电脑,做好了出厂化代码,随着企业的做大,开拓了ipad产品,ipad出厂化代码,需要在电脑初始化代码的基础上,进行额外的删改。
台式电脑的出厂化代码:
import java.util.Scanner; public class computer { Scanner sc=new Scanner(System.in); String ip="ip属地:河北"; //父类属性 void startUp() { System.out.println("电脑正在开机,请稍等..."); //父类成员方法 } void openMachine() { System.out.println("请输入ping:"); int ping=sc.nextInt(); if(ping==888888) { System.out.println(sayHellow()); //输出sayHellow()方法的返回值 }else { System.out.println("密码错误,请重新输入"); openMachine(); //继续运行openMachine()方法 } //父类成员方法 } String sayHellow() { return "Welcome"; //父类成员方法 } public static void main(String[] args) { computer c=new computer(); c.startUp(); System.out.println(c.ip); c.openMachine(); } }
输出结果:
ipad的出厂化代码(继承了台式电脑的代码):
public class ipad extends computer{ String electricQuantity="电量:20%"; //根据实际需要,补充子类的属性 void open5G() { System.out.println("提醒:已连接5G网络"); //根据业务需要,补充子类的方法 } void startUp() { System.out.println("ipad正在开机,请等待..."); //复写computer父类的startUp方法 } String sayHellow() { return super.sayHellow()+" to use ipad."; //调用父类原本方法,并加以改造 } public static void main(String[] args) { ipad i=new ipad(); i.startUp(); //调用子类改写完父类的方法 System.out.println(i.ip); //调用父类的属性 System.out.println(i.electricQuantity); //调用子类的属性 i.openMachine(); //调用父类的方法,并且运行中的sayHellow()方法是子类改造后的方法 i.open5G(); //调用子类额外需要的方法 } }
输出结果:
总结
以上就是本文讲的内容,本文简单介绍了继承的含义,extends关键字方便了我们快速便捷地处理类与类之间的代码调用,极大减轻了重复造轮子的压力。