java继承思想

继承:

格式:public class 子类名 extends 父类名{}

继承中子类可以有父类的内容,也有自己特有的内容;

super关键字:代表父类储存空间的标识(可以理解为父类对象的引用)

this和super

this.成员变量 //访问本类成员变量

this(…) //访问本类构造方法

this.成员方法 //访问本类成员方法

super.成员变量 //访问父类成员变量

super.(…) //访问父类构造方法

super.成员方法 //访问父类成员方法

子类中所有构造方法都会默认访问父类的无参构造方法

因为子类会继承父类中的数据,可能还会使用父类的数据。所以,子类初始化前,一定要先完成父类数据的初始化

每个子类构造方法的第一条语句默认都是:super()

父类没有无参构造方法的解决方法:

  1. super(参数);

那么会访问父类中的带参构造方法

  1. 手动在父类中创建无参构造方法,例如:

public 父类s{}

如果子类和父类都有一个相同的方法,那么子类的方法会覆盖父类的方法,但是也可以用super.方法名() 来调用父类的方法

也就是说通过子类对象访问一个方法,先在子类范围内找,然后在父类范围找,没有就报错,不考虑父亲的父亲

方法重写:

子类中出现了和父类中一模一样的方法声明就是方法重写

应用:

当子类需要父类的功能,而功能主体子类有自己特有的内容时,可以重写父类中的方法,这样,既沿袭了父类的功能,又定义了

子类特有的内容

当方法重写时,可以用@Override放在重写方法的上面用来检车重写方法是否有错误;

子类重写方法时它的访问权限必须大于父类

例如如父类是默认访问修饰符

那么子类就可用默认方法修饰符或者public修饰符

public>默认>私有

既私有方法不能被重写

在java中只能继承单个类,不能继承多个类,但是可以多层继承

也就说儿子继承爸爸,爸爸继承爷爷,那么儿子就有爸爸和爷爷的内容;

Student和Teacher都是Person的子类,Demo是测试类,Person是父类

 

 

子类不能直接访问父类的私有函数,Student创建s3时输入参数时用的是带参构造方法,但是Student类中的带参构造方法有一个super(name,age);就是通过这个方法来将name和age传入到父类,使用父类的内容

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值