继承
1.1继承
格式:public class 子类名 extends 父类名{}
父类:也被称为基类、超类
子类的特点:子类可以有父类的内容,也可以有自己特有的内容
注意:在程序实现时应建立起子类与父类之间的联系
1.2继承的好处和弊端
好处
提高了代码的复用性
提高了代码的维护性
弊端
继承增强了类的耦合性
什么时候使用继承
二者之间有关联
如水果和苹果,动物和猫
1.3继承中变量的访问特点
在子类方法中访问一个变量
先在子类局部范围内(子类方法中)找
再在子类的成员变量中找
最后在父类的成员变量中找
如果都没有就报错
1.4super
this:访问子类的成员变量
super:访问父类的成员变量
this和super的三种使用方法
访问成员变量(this.成员变量/super.成员变量)
访问构造方法(this(…)/super(…))
访问成员方法(this.成员方法(…)/super.成员方法(…))
1.5继承中构造方法的访问
为什么调用子类构造方法的时候会调用父类的无参构造方法?
子类调用构造方法之前需要初始化父类的构造方法
子类构造方法中默认有一条super()语句,而括号中无参,因此调用的是父类的无参构造方法
当父类中没有无参构造方法时该怎么办?
手动加上super(argument)的语句,访问父类的带参构造方法
在父类中书写一个无参构造方法(推荐)
1.6继承中成员方法的访问特点
先在子类成员范围内找
再在父类成员范围内找
找不到就报错(不考虑父亲的父亲…只考虑父亲)
1.7super内存图
栈内存
堆内存
1.8方法重写
概述:子类中出现了和父类中一模一样的方法声明
@Override 能够起到检查重写方法正确性的作用
1.9方法重写注意事项①
子类不能继承父类的私有方法(private)
子类重写父类方法的权限不能低于父类被重写方法的权限(public > 默认(default) > private)
1.10方法重写注意事项②
java支持单继承,不支持多继承
java支持多层继承
1.11案例1
1.12案例2
1.包
其实就是文件夹
包的命名
包的建立
2.导包
目的:为了简化代码
引例:import java.util.Scanner
使用:import + 包名
3.修饰符
权限修饰符(public > protected > 默认(default,不写类型)> private)
本类:四种类型的方法都可访问
本包的子类及无关类:不能访问private类型的方法
非本包的子类:不能访问private和默认类型的方法
非本包的无关类:只能访问public
状态修饰符
final修饰符(最终态)
①
修饰成员方法(方法不能被重写)
修饰成员变量(变量成为常量,不能被重新赋值)
修饰类(类是最终类,不能被继承)
②
final修饰基本类型的变量,指的是数据值不能改变(如int类型的变量)
final修饰引用类型的变量,指的是地址值不能改变,但内容可以改变
static修饰符(静态)
①
可修饰成员变量和成员方法
可被所有类的对象共享
可通过对象名调用,也可通过类名调用,最好用类名调用
②static的访问特点
非静态的成员方法能访问所有的非静态和静态(包括成员变量和成员方法)
静态的成员方法只能访问静态的(成员变量和成员方法)