java继承

java继承

**ctrl+H:**查看继承关系树

Object类:在java中,所有的类都默认直接或间接继承Object类,如果创建的类后边没有用extends继承父类,就默认继承Object类,如果继承了父类,就成了直接继承父类,间接继承Object类

java中类只有单继承,没有多继承!一个儿子只有一个爸爸,一个爸爸可以有多个儿子

image-20210709125100216

子类is a父类:student is a person

​ teacher is a person

​ cat is a animal

子类 extends 父类后:

子类就是父类的派生类,子类就可以继承父类所有procted以上访问权限的方法和属性。如果是私有属性变量,也可以访问它的共有的get和set方法**(封装)**

四种访问权限

四种权限修饰关键字

一、private:只能被本类访问

二、default: 默认属性,并且不能写出来 只要你没有用其他修饰默认就是default,

同包目录下访问

三、protected:除了能被同包访问,还可以给不同包下的子类访问

四、public:公共的 可以被其他包访问

super

1.当我们在父类中编写一个属性name,而子类中的也有一个相同名字的属性name,这时就难以区分调用的到底是子类的name还是父类的name这时我们需要用到this.name和super.name来区分

**this.name:**本类中的name属性

**super.name:**父类中的name属性

image-20210709134342469

2.当我们调用方法时,如果子类和父类中有同样名称的方法,那么子类的方法就构成了对父类方法的重写,所以直接调用该方法时调用的是子类中的该方法

**print()😗*调用子类中的print()方法

**this.print()😗*调用子类中的print()方法

**super.print()😗*调用父类中的print()方法

父类中私有化的方法能够继承,但是无法调用

image-20210709135000396

3.当子类继承父类后,用子类new对象时,首先会调用子类的空参构造器,子类的空参构造方法中会在第一行放置一条隐藏代码super();首先调用父类的构造器,所以在new子类对象时其实是在子类构造器中先调用了父类的空参构造器。而且在构造器中this();和super();不能同时存在,因为他们两个都必须放到第一位

super注意点

1.super调用父类的构造方法,必须在构造方法的第一行

2.super必须只能出现在子类的方法或者构造方法中

3.super和this不能同时在构造方法中调用构造方法

super Vs this

代表的对象不同:

​ this:本身调用这个对象

​ super:调用的是父类对象

​ 前提:

​ this:没有继承也能够使用

​ super:只能在继承条件下使用

​ 构造方法:

​ this():调用本类的空参构造器

​ super():调用父类的空参构造器

重写

  • 重写只能够重写非静态方法,静态方法不能够被重写

  • 当new的对象调用静态方法时,要看=号前边的对象类型去调用,当new的对象调用非静态方法时,就要看后边的对象类型去调用。

  • 静态方法是类的方法,非静态方法是对象的方法

1.当A继承B是时,如果两个类中有相同的静态的方法,在new对象时就要看=前边定义的数据类型来判断是调用子类方法还是父类方法

image-20210709143901108

image-20210709143551275

2.当new的对象调用非静态方法时,就要看后边的对象类型去调用。

image-20210709145102262

重写总结

重写:需要有子类和父类的关系,子类重写父类的方法,只有方法能够重写!!!

  1. 方法名必须相同

  2. 参数列表必须相同

  3. 子类的返回值类型要是父类返回值类型的子类或者相同

  4. 修饰符:子类的访问权限要比父类的大或等于,不能缩小:public>protected>default>private

    5.抛出的异常:范围可以被缩小,但不能扩大。ClassNotFoundException<Exception

重写,子类的方法和父类必须要一直,方法体不同!

为什么要重写

1.父类的功能,子类不一定需要,或者有需要改进的地方。

Alt+Insert–》override;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值