java继承

本文详细解释了在Java中使用继承简化类设计的过程,包括继承的原理、语法,以及如何通过重写和重载方法实现代码复用。还讨论了构造方法在继承中的作用,强调了super和this的关键字用法以及它们在构造方法中的优先级。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题:如果需要创建人,学生,教师,农民,士兵等多个类时,会做很多重复的工作;

例:需要创建多个僵尸类,包括僵尸:普通僵尸,爆炸僵尸,帽子僵尸,跳高僵尸;

缺点:定义新类时,工作量增大,修改维护时也需要大量的工作;

如何解决以上的问题?

一、继承(inheritance):

原理:继承可以简化类的设计,可以利用现有的类创建新的类;

特点:通过继承,可以让子类直接拥有父类的属性和方法;

本质:继承是类和类之间的一种关系;

二、继承的语法

class 子类名  extends  父类名{

}

//extends:扩展;

三、关于继承的理解

1.在继承关系下,位于上层的是父类,下层的是子类,子类拥有父类的所有属性和方法;

2.java中只支持单继承,即每个类只能由一个直接父类,但支持多层继承;

3.子类是父类的一种特殊情况,绝不能脱离父类的范畴;

4.可以口头使用 is 来判断,子类 is 父类通不通顺,如果通顺就在范畴内,否则不能继承;

四、重写方法

overRide(overWrite)

方法重写:在继承关系下,子类覆盖父类的方法,就叫重写;

要求:方法名相同,参数相同;

五、重写与重载的区别

1.定义不同:

重写是方法名相同,参数也相同,并且一定要在继承关系下使用;

重载是方法名相同,参数不同的一组方法;

2.翻译不同:

重写:overRide;

重载:overload;

六、关于继承的三句话(小结)

1.父类有的,子类一定有;

2.父类没有的,子类可以扩展(增加);

3.父类有的,子类可以修改(重写);

七、super关键字

注意:父类和子类的属性尽量不要重复;

回顾:this:当前对象的引用;

super:父类对象的引用;

用法:

super.属性;

super.方法;

super(参数列表);调用父类的构造方法;

注意:this同样可以这样用;

八、原理

Student是Person的一个子类,创建Student对象时,内部先创建一个Person对象并与我们能看到的Student对象建立联系,this关键字会在我们能看到的Student的对象的属性和方法中寻找,super关键字会在Person的对象的属性和方法中寻找。

九、继承中的构造方法

核心思想:创建子类对象前,一定会先创建父类的对象;

即当实例化一个子类的对象时,会先调用父类的构造方法,再调用子类的构造方法;

 Student  s  =  new   Student();

1.继承关系中,属性和普通方法可以被继承,但构造方法不能被继承;

2.子类的构造方法中,一定要先调用父类的构造方法;

3.如果不显示调用父类的构造方法,编译器会生成一个语句super();来先调用父类无参的构造方法;

问题:父类有带参数的构造方法,而子类没有显示构造方法,则报错;

改正:父类有带参数的构造方法,子类定义带参数的构造方法(需在第一条语句写super(参数列表);),则不报错;

改正:父类没有显示构造方法,子类有显示定义方法(不写super,系统自动给你生成),不报错;

十、 this的用法

1.super和this的优先级,父类无参-->父类有参-->子类无参-->子类有参;

2.this(参数列表);表示,调用当前类的其他构造方法,此语句必须放在构造方法使用,并且是第一行;

3.this.属性或方法:调用当前对象的属性或方法;

对比:

1.super();调用父类的构造方法;

2.super.属性或方法:调用父类对象的属性或方法;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值