Java中的继承

目标:

1,认识继承

Java中提供了一个关键字extends,用这个关键字,可以让一个类和另一个类建立起父子关系。

继承的特点:

子类可以继承父类的非私有成员(成员变量,成员方法);

继承后子类的对象是由子类和父类共同完成的。

 

 

2,继承的好处

使用继承可以减少重复代码的编写

减少重复代码的编写 

 3.继承的相关注意事项
  • .权限修饰符

权限修饰符用来限制类中的(成员变量,成员方法,构造器,代码块。。。)能够访问的范围。

权限修饰符有四种:

  • private :只能在本类访问
  • 缺省:本类或同一个包中的类
  • protected:本类或同一个包中的类、子孙类中
  • public:任意位置

 

  • 单继承、Object类

Java中的类是单继承的,但是可以多层继承

为什么Java中不能多继承

object类是java所有类的祖宗类。我们写的任何一个类,其实都是object的子类或子孙类。 

  • 方法重写

在继承的条件下,当子类觉得父类的方法不能满足自己,子类可以重写一个方法名相同,参数相同的方法,去覆盖父类的方法,这就叫方法的重写。

方法重写后,方法的访问会根据就近原则

方法重写的其它注意事项  

重写小技巧:使用Override注解,他可以指定java编译器,检查我们方法重写的格式是否正确,代码可读性也会更好。

子类重写父类方法时,访问权限必须大于或者等于父类该方法的权限( public > protected > 缺省 )。

重写的方法返回值类型,必须与被重写方法的返回值类型一样,或者范围更小。

私有方法、静态方法不能被重写,如果重写会报错的。

  • 子类中访问其他成员变量的特点

1、在子类方法中访问其他成员(成员变量、成员方法),是依照就近原则的。

先子类局部范围找。 然后子类成员范围找。 然后父类成员范围找,如果父类范围还没有找到则报错。

2、如果子父类中,出现了重名的成员,会优先使用子类的,如果此时一定要在子类中使用父类的怎么办? 可以通过super关键字,指定访问父类的成员:super.父类成员变量/父类成员方法

  • 子类构造器的特点

子类构造器的特点:  子类的全部构造器,都会先调用父类的构造器,再执行自己。

子类构造器是如何实现调用父类构造器的:

默认情况下,子类全部构造器的第一行代码都是 super() (写不写都有) ,它会调用父类的无参数构造器。 如果父类没有无参数构造器,则我们必须在子类构造器的第一行手写super(….),指定去调用父类的有参数构造器。

子类构造器为什么一定要先调用父类的构造器:

因为在继承中子类对象是由子父类共同创建的,调用子类构造器,给子类成员变量初始化时,子类构造器肯定先调用父类构造器给父类的成员变量进行初始化。

注意:如果父类没有空参构造,子类的构造器第一行必须写super(....),否则会报错。

  • 注意事项

1.子类构造器有啥特点?

子类中的全部构造器,都必须先调用父类的构造器,再执行自己。

2、super(…)调用父类有参数构造器的常见应用场景是什么?  

为对象中包含父类这部分的成员变量进行赋值。

3、this(…)的作用是什么?  

在构造器中调用本类的其他构造器。

3、this(…)和super(…)的使用需要注意什么?  

都必须放在构造器的第一行且不能同时出现。

补充知识:this(…)调用兄弟构造器

任意类的构造器中,是可以通过this(…) 去调用该类的其他构造器的。

 

4,继承的应用场景

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Allengan@wow

前人栽树,后人乘凉

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值