当前位置:首页 > JAVA教程 > JAVA基础

10面向对象三大特征之继承

1.概述

【1】继承是多态的前提,如果没有继承,就没有多态
【2】继承主要解决的问题是共性抽取
【3】子类可以拥有父类的“内容”
【4】子类可以拥有自己的专属内容

2.格式

【1】关系: 子类就是一个(is-a)父类
【2】格式:

//父类格式:一个普通类的格式 public class 父类名称 {} //子类格式 public class 子类名称 extends 父类名称{} 
  • 1
  • 2
  • 3
  • 4
  • 5

3.成员变量的访问特点

在父子类的继承关系中,如果成员变量重名,则创建子类对象时,访问有两种方式:
【1】 直接:通过子类对象访问成员变量:
等号左边是谁就优先用谁,没有则向上找(创建对象时的左边)
到处都没有时,编译报错
【2】 间接:通过成员方法访问成员变量 :
看方法属于谁就优先用谁,没有则向上找

4.区分子类方法中重名的三种变量

【1】局部变量: 直接写成员变量名
【2】本类的成员变量: this.成员变量名
【3】父类的成员变量: super.成员变量名

5.继承中成员方法的访问特点

在父子类中有方法重名:创建的对象是谁,则优先用谁的方法

TIPS:
无论是成员变量还是方法,如果没有,一定是向上找父类的

6.方法的重写(override)

【1】概念:继承关系中,方法的名称和参数都一样
【2】重写和重载的区别
重写:名称一样,参数一样。覆盖,重写
重载:名称一样,参数不一样
【3】特点:创建的是子类对象则优先用子类方法

TIPS:
【1】安全检测

//注解:写在方法前面,用来检测是不是正确的有效覆盖 //注解可写可不写 @override 
  • 1
  • 2
  • 3

【2】子类方法返回值必须小于等于父类方法返回值范围
Object类是所有类的公共最高父类(祖宗类)
【3】子类方法的权限必须大于等于父类方法的权限修饰符
public>protected>(default)>private
default不是关键字而是什么都不写留空

设计原则:对于已经使用投入的类,尽量不要修改老的,推荐定义一个新的类,来重复利用其中共性内容,并且添加改动新内容(继承)

// 重写方法:使用重写的父类方法 super.方法名(参数); 
  • 1
  • 2

7.继承中父子类构造方法的访问特点

【1】子类构造方法中有一个默认隐藏的"super()"的调用。所以一定是先调用父类构造,然后调用子类构造
【2】子类构造可以通过super关键字来调用父类重载构造
【3】super的父类构造调用必须是子类构造方法的第一句。不能一个子类构造调用多次super构造
(总结):子类构造方法必须调用父类构造方法,不写则赠送super();写了则用写的指定的super调用,super只能有一个,还必须是第一个

8.继承的三个特点

【1】java是单继承:只能有一个父类
假设能够多继承,两个父类中都有method()方法,子类不知道调用哪个父类的method()方法
【2】java可以多级继承(有爷爷):A也算是C的父类,但不能算是直接父类
【3】一个子类的直接父类是唯一的,但是一个父类可以拥有多个子类


【说明】本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!