畅聊Java三大特性之继承
发布时间:2021-11-09 09:49:19 所属栏目:PHP教程 来源:互联网
导读:前言 类的继承性是面向对象语言的基本特性,多态性前提是继承性。Java 支持继承性和多态性。Java从小白到大牛 继承:三大特性之一,关键词:extends 简单用伪代码去介绍一些 假设需要定义个student类 public class Student{ private String name;//名字 priv
前言 类的继承性是面向对象语言的基本特性,多态性前提是继承性。Java 支持继承性和多态性。——Java从小白到大牛 继承:三大特性之一,关键词:extends 简单用伪代码去介绍一些 假设需要定义个student类 public class Student{ private String name;//名字 private int age;//年龄 private int sex;//性别 } 再来个需求,需要定义一个学生Andy,不用继承时候,需要一个个去定义; public class Andy{ private String name; private int age; private int sex; private String country;//新增一个国家信息 } 从上面看两者有着很多的相似的重复定义的东西,如果使用继承去写这段代码就可以如下: public class Andy extends student{ private String country } 所以从上面可以看出类的继承大致用途,Andy类已经继承了Student类,上面的父类便是student,extends后面跟着的。继承的时候,要明确指出,要不然就是在Java标准根类Object进行继承。 再者,在继承的过程中,除了你可以在新的类中去添加东西,也不一定非得使用基类的方法属性等。 还可以有多层继承关系(下面的输出是随便定义的伪代码,可以是直接输出某一些语句,方便运行查看) class Art{ Art(){输出1} } class Music extends Art{ Music(输出2) } class Dance extends music{ public Dance(){输出3} public static void main(String args[]){ dance x = new dance(); } } //输出的顺序是1 2 3 父类与子类的构造函数问题 若不在类中定义构造函数,会默认生成一个无参的函数构造器,如果有了就不会。(构造器即构造函数,与类同名,在初始化的时候就被调用,,默认的构造函数是不带任何参数的) class Art{ } //等同于下面 class Art{ public Art(){ // } } super关键字 Java用super表示超类的医生,当前类是从超类继承来的。 class Game{ int h; Game(int i){//构造函数 System.out.println("this is a game!"); } public static void printg(int d){//普通函数 System.out.println("12"); } } class ballGame extends Game{ ballGame(int i){ super(i);//调用父类的构造器,漏了这句就会报错,显示there is no default constructor available System.out.println("ballGame is coming!"); super.h = 3;//访问父类的属性 } } super可以用于访问父类定义的属性,用于调用父类中的成员方法,super代表父类的内存空间。可以访问父类的父类 class Game{ int h; Game(int i){//构造函数 System.out.println(i);//输出 System.out.println("第一层"); } public static void printg(int d){//普通函数 System.out.println("1"); } } class ballGame extends Game{ ballGame(int i){ super(i);//调用父类的构造器 System.out.println("第二层"); super.h = 2;//访问父类的属性 } } public class jichengSuper extends ballGame{ jichengSuper(int b) { super(b);//调用的是上面父类的构造函数,将输出3 int a = super.h ;//将第二层里的3赋值给a System.out.println(a);//打印 } public static void main(String args[]){ new jichengSuper(3);//这里的3将代进去上面的构造函数jichengSuper中 System.out.print("最后一层"); } } /** *output: 3 第一层 第二层 2 最后一层 */ 接口在实现的时候,在类中一定要实现接口的抽象方法 而继承不用,想要用哪个再用 others 可以有多个接口但是只能有一个继承。一般情况下,一个子类只能继承一个父类,这称为“单继承”,但有的情况下一个子类可以有多个不同的父类,这称为“多重继承”。在Java中,类的继承只能是单继承,而多重继承可以通过实现多个接口实现。 ![]() (编辑:应用网_丽江站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |