java继承的性质,浅谈Java三大特性之继承

前言

类的继承性是面向对象语言的基本特性,多态性前提是继承性。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中,类的继承只能是单继承,而多重继承可以通过实现多个接口实现。0b1331709591d260c1c78e86d0c51c18.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值