extends继承的全解和注意事项

1.继承的概述,使用继承的好处

什么是继承?java允许一个类通过extends于另一个建立父子关系,

格式 :   子类extends父类

特点:    子类继承父类之后,就可以直接使用父类的public(其它像private就不可以用)的属性和行为

优点:    提高代码的复用性,父类于子类相同的代码放在父类中,提高扩展性

2.继承的设计规范,内存运行原理

设计规范:子类公用属性和行为放在父类,子类独有属性行为放自己哪里

内存原理:子类对象实际上是由父类设计图共同创建出来(了解即可)

3.继承的特点

类只能单个继承,不能同时继承好几个(原因,多个父类相同的方法,就不知道调用谁的,会矛盾)

可以进行多层继承,就是子类继承父类,父类在继承爷爷类,这时候子类同时具有父类,和爷爷类的public属性和行为

4.方法重写

子类中写了一个和父类相同的方法,名字相同,参数相同。

但是注意可以修饰符不同,返回值也可以不同,但是有个规范,就是子类修饰符要比父类修饰符大,返回值比父类小,

修饰符范围大小顺序    public >protected>默认(就是不写)>private

这里给出范围,解释一下

public :全都可以挎包也可以,

protected: 可以挎包,继承父类可以进行调用,子类可以调用带这修饰符的属性和行为

默认(就是不写):默认范围就是本包里可以调用

private:只能当前类进行调用

总结一下:我们工作还是主要以public 和private 这两个为主的,另外两个虽然不用但是要知道

5.继承后的成员变量和成员方法

代码演示:

        可以看见先输出方法的number=100,如果没有方法注释掉就会找类中的number=200,

  也可以直接用this调用,父类是number=300,如果子类中和方法都没有number,会自动找到父类的number输出300,也可以直接调用super.number直接就是父类的



public class Zi extends Fu{
    int number=200;

    public void method(){
        int number=100;
        System.out.println(number);  //100
        System.out.println(this.number); //200
        System.out.println(super.number); //300
    }
}

-------------------------
public class Fu {
    int number=300;
}

总结一句话:就近原则

6.构造器的特点(无参和带参构造)

无参构造:

        子类的全部构造器默认先访问父类无参构造,在执行自己的无参构造,原因是子类的无参构造默认书写了super(),调用父类,平常是看不到的,

        (可以理解为先有父亲才有儿子,现有父类才有子类,所以先执行父类的无参构造)

package com.itheima.day01.Test01;

/**
 * 父类
 */
public class Fu {
    public Fu() {
        System.out.println("父类无参构造");
    }
}


---------------
package com.itheima.day01.Test01;

/**
 * 子类
 */
public class Zi extends Fu{
    public Zi() {
        System.out.println("子类无参构造");
    }
}

---------------
package com.itheima.day01.Test01;

/**
 * 测试类
 */
public class Demo {
    public static void main(String[] args) {
        Zi zi = new Zi();

        //输出
//            父类无参构造
//            子类无参构造
    }
}

带参构造

        子类带参构造,是访问的父类的带参构造,初始化继承父类的数据,是通过一个super()去调用父类的带参构造

super() 就相当于一个父类对象 super(参数),就传给了父类的带参构造

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值