(JAVA)面向对象三大特征-继承

继承指什么:

继承指一个对象直接使用另一对象的属性和方法,子类可以拥有父类的所有属性和方法,也可以扩展定义自己特有的属性,增加新方法和重新定义父类的方法。 当类与类之间存在共性内容且满足子类是父类的一种,就可以考虑使用继承。

extend关键字:

java中的extends关键字,可以建立起类与类之间的继承关系

publc class Student extends Person{}

如上述代码,就将两个类建立起继承关系Student类是子类,person类是父类

继承特点:

1.一个子类只能继承一个父类

2.支持多层继承

3.每一个类间接继承于object类

4.子类不能调用父类的非私有的成员

子类对父类继承的内容

1.成员变量的继承

1.子类能继承父类的成员变量,私有的成员变量和非私有的成员变量都能继承

2.子类不能直接使用父类的私有的成员

3.子类要使用父类的私有变量要用get和set方法。

访问特点

1.就近原则

public clss fu{
String name="fu";
}

public class zi extends fu{
String name="zi";
public void zishow()
{
System.out.println(name);
System.out.println(this.name);
System.out.println(super.name);
}

打印的是zi,zi,fu

如图所示,若主函数中,使用对象调用变量,将根据对象类型到对应的地址

找到变量,找不到再逐级往上找

2.成员方法的继承

为了便于调用方法,java设立了虚方法表,每个类都有自己的虚方法表,将常用的方法放在里面,继承下去。

虚方法:

1.非private

子类不能访问父类的私有化方法,除非子类通过同一父类中的非私有化方法进行间接访问

2.非static

静态方法可以被子类继承,但不能被重写。如果子类和父类中各有一个static方法,且它们的返回值类型、方法名、参数列表都相同(具有相同的签名),那么这两个static方法并不具有重写关系

3.非final

访问特点

调用方法需要对象名。

this.方法名()        先在本类中查看方法,没有再去调用父类中继承的方法。

super.方法名()直接去父类中调用方法。

方法的重写

 1.方法的重写:当父类的方法不能满足子类的需求,需要进行方法重写。..

2.方法重写的本质是将z虚方法表中的方法进行覆盖自己

3.重写方法需要将@Override加在重写方法的上面

@Override重写注释:能够报错,下图是重写方法名跟原方法名不同时。

​注意事项

1.重写方法的名称,形参列表必须与父类中的一致。

2.访问权限子类>父类

3.子类重写父类方法时,返回值类型小于等于父类

4.虚方法表中的方法才能重写

3.子类构造方法的使用

父类的构造方法不会被子类继承。

为了给变量初始化,子类中所有的构造方法默认先访问父类中的无参构造,再执行自己。

子类构造方法的第一行语句默认都是:super(),不写也在,且必须在第一行。

如果想调用父类的有参构造,必须手动调用

4.super,this使用总结

this:相当于一个形参,在调用方法时候调用,存的方法调用者的地址

super:代表父类存储空间

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值