栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

面向对象——继承

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

面向对象——继承

继承 概述

当多个类存在相同的属性和方法时,可以从这些类中抽象出父类,在父类定义这些属性和方法,子类通过关键字 extends 来声明继承父类即可

class Son extends Father{
}
好处

提高了代码的复用性

提高了代码的扩展性和可维护性

细节

1.父类的私有(private)属性和方法不能在子类直接访问,要通过公共的方法去访问

private String name; //父类定义一个私有属性姓名
public String getName() {
 return name;   //定义一个访问 name 的公共方法
}
a.getName(); //子类要通过调用公共方法才能访问 name

2.当创建子类对象,不论子类用的哪个构造器,默认情况下先调用父类的无参构造器,完成父类的初始化

public Son() {
    super(); //默认存在super关键字调用父类的无参构造器
sout("这是子类的无参构造器")
}
public Father() {
sout("这是父类的无参构造器")
}
Son son = new Son(); //当创建一个子类对象,会默认调用父类和子类的构造器方法

3.如果父类没有无参构造器,要在子类构造器中用 ==super();==去指定使用父类的哪个带参构造器完成对父类的初始化工作,不然会报错

public Son(String name) {
super("zcw"); 
    //由于父类没有无参构造器,子类用super指定父类带参的构造器,即传入对应实参
①sout("这是子类的带参构造器")
}
public Father(String name) {
②sout("这是父类的带参构造器")
}
Son son = new Son(name); //当创建一个子类对象,会默认调用父类和子类的构造器方法
输出结果则是①②
  1. super只能在构造器使用,且必须放在构造器的第一行,不然会报错,先有爸,再有儿子
  2. super() 和 this() 都只能放在构造器的第一行,两个方法不能放在同一个构造器(好好理解)
  3. java所有类都是Object的子类
  4. 父类构造器的调用不限于直接父类,一直往上追溯到object类
  5. 子类最多只能继承一个父类,java是单继承机制
  6. 不能滥用继承,子类和父类必须满足 is-a 的关系
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/583760.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号