extends继承的全解和注意事项

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(参数),就传给了父类的带参构造

相关推荐

口袋妖怪复刻幕下力士怎么样 幕下力士属性进化图鉴
0-4!世俱杯五大联赛对决,5亿豪门惨遭吊打狼狈完败
黄芪霜真的能祛黄吗 黄芪霜的价格
365bet体育网

黄芪霜真的能祛黄吗 黄芪霜的价格

📅 07-05 👁️ 7958