• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

java继承

武飞扬头像
高桥别介
帮助1

继承

当多个类都有相同的特征和行为时,我们可以将这些类中相同的内容提取出来组成公共类,让多个类吸收公共类中的已有特征和行为,而这多个类只需要编写自己独有的特征和行为的方式叫做继承。

~换句话说,继承就是子类继承父类的公共属性和方法,再编写子类自己特有的属性和方法

~使用继承可以提高代码的复用性,拓展性,可维护性。

拓展性:(也就是继承的本身,也就是扩大)

~复用性(重复使用)

在java实验中使用extends(拓展)关键字来表示继承。

例:public class Student extends Person

这里就表示Student类继承了Person类。

我们将这里的这里的Student叫做子类,孩子类,派生类

将这里的Person类叫做父类,基类,超类

使用继承时的注意事项

1.子类可以继承父类的成员变量和成员方法,其中私有成员变量可以继承但是不能直接使用,子类不可以继承父类的私有成员方法和构造方法。

(原因:第一:子类不能继承父类的构造方法,因为构造方法要和类名相同,而子类和父类的类名显然不同,所以子类也就不能继承父类的构造方法。第二:私有成员按理来说也不能被继承,但是有一个例外就是私有成员变量可以被继承,所以这里的成员方法不是特例也就自然不能被继承,而且如果私有方法继承下来也没有用,因为子类如果继承父类的私有方法那么开始时私有的成员方法是在父类中被定义的,所以现在的子类就算类外,自然就不能使用。所以也就干脆不能继承,刚刚说过,私有成员变量是一个特例。)

~私有成员(成员=变量 方法)按理来说都不能继承,但是这里的私有成员变量是一个特例,可以被继承,但是私有成员变量就不能被继承。

2.无论使用任何方法构造子类对象时,子类都会自动调用父类的无参构造方法,就相当于在子类被调用的构造方法的第一句加上super();的效果。

~其实也就是子类在构造对象时编译器会自动在被调用的子类构造方法的第一句加上super();

(所以如果我们在调用子类的构造方法构造对象时,如果在父类之中我们只定义了有参构造方法而没有定义无参构造方法,那麽这个时候编译器就会报错。)

在我们的日常编程中我们以后应该:在使用继承时,在子类的无参构造方法中的第一行调用父类的无参构造方法,在子类的有参构造方法中的第一行调用父类的有参构造方法(标准而且降低了代码的重复性)

(也就是在子类的无参构造方法的第一句加上super();在子类的含参构造方法的第一句加上super(name,age),这里的name和age只是举了一个例子,注意,这里的name和age都是实参)

this()和super()不能同时出现在同一个构造方法中,因为this()和super()调用构造方法时都要在构造方法中的第一句语句(也就是第一条有效语句),而只有一个第一行,也就自然不能同时出现。

3.使用继承必须满足子类is a父类的逻辑关系(也就是不能滥用继承)

4.java语言只支持单继承而不支持多继承,也就是一个子类只有一个父类,但是一个父类可以有多个子类。

~java是单继承,而c 是多继承,c 允许一个子类有多个父类

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgabbba
系列文章
更多 icon
同类精品
更多 icon
继续加载