一、继承
- 继承是面向对象的三大特征之一,可以使子类具有父类的属性和方法,还可以在子类中重新定义、追加属性和方法(比如苹果可以继承水果猫可以继承动物)
- 格式:public class 子类名 extends 父类名{} (子类可以有父类的内容,子类还可以有自己特有的内容)
- 继承的好处和弊端:提高了代码的复用性和维护性
- 继承中变量的访问特点: 1.子类局部范围找
2.子类成员范围找
3.父类成员范围找
4.如果都没有就报错(不考虑父亲的父亲)- 注意事项 1.java中类只支持单继承,不支持多继承
2.java中类支持多层继承
二、super(访问父类的成员变量)
关键字访问成员变量访问构造方法访问成员方法thisthis.成员变量this(...)this.成员方法(...)访问本类成员变量访问本类构造方法访问本类成员方法supersuper.成员变量super(...)super.成员方法()访问父类成员变量访问父类构造方法访问父类成员变量
三、继承中构造方法的访问特点
子类中所有的构造方法默认都会访问父类中无参的构造方法(即每一个子类构造方法第一条默认语句为super() )
四、继承中成员方法的访问特点
先子后父找
五、方法重写
子类中出现和父类 一模一样的方法声明:
@Override:
- 是一个注册
- 可以帮助我们检查重写方法的方法声明的正确性
注意事项:
- 私有方法不能被重写(父类私有成员子类使不能继承的)
- 子类方法访问权限不能更低(public>默认>私有)
六、修饰符
访问控制修饰符
- public :对所有类可见。使用对象:类、接口、变量、方法
- default :(即默认,什么也不写)在同一包内可见,不使用任何修饰符。使用对象:类、接口、变量、方法
- protected:对同一包内的类和所有子类可见。使用对象:变量、方法(注意:不能修饰类(外部类))
- private :在同一类内可见。使用对象:变量、方法(注意:不能修饰类(外部类))
是否可被继承表
修饰符同一个类中同一个包中子类无关类不同包的子类不同包的无关类private√默认√√protected√√√public√√√√
非访问控制修饰符
- final :(表示最终的、最后的意思)可以修饰成员变量、成员方法、类 特点:
1.修饰方法:表明该方法是最终方法,不能被重新
2.修饰变量:表明该变量是常量,不能再次被赋值
3.修饰类:表明该类是最终类,不能被继承- static :(静态的意思),可以修饰成员变量、成员方法
static修饰的特点:
1.被类的所有对象共享(这也是我们判断是否使用静态关键字的条件)
2.可以通过类名调用(推荐使用类名调用)
static访问的特点:
1.非静态的成员方法
- 能访问静态的成员变量
- 能访问非静态的成员变量
- 能访问静态的成员方法
- 能访问非静态的成员方法
2.静态的成员方法
- 能访问静态的成员变量
- 能访问静态的成员方法
总结为一句话就是:静态成员方法只能访问静态成员