继承
1.1 
概念:已有类与定义类相似,并且定义类属于已有类一种时,那么要定义的类就可以定义为已有类的子类。
好处:子类可以拥有父类可继承的所有的属性和功能,子类可以直接调用父类的非私有属性和功能。
提高复用性
提高开发效率
让类和类之间产生了关系,提供了多态的前提

格式:public class ZiLei extends FuLei
子类可以通过getset方法访问父类中的私有属性
子类可以定义特有的方法,一般子类比父类更强大
注意事项:
在java中只支持单继承,不允许多继承,一个类只能有一个直接父类
多个类可以继承一个父类
多层继承是允许的。
继承中的成员变量的特点:
变量的就近访问原则 局部范围->本类成员->父类成员变量 依次查找,都没有 报错
this和super可以访问成员变量
this.属性名 访问本类的成员变量
super.属性名  访问父类的成员变量 必须是非私有的属性  super代表当前对象的父类的引用


静态的只能调用静态的方法

概念2:将多个类的共性向上抽取,这个新类与原有的多个类就形成了一个继承关系
 越向上抽取,功能越少,但都是共性内容
 使用的时候,使用下层
 学习的时候,学习上层
 
1.2 方法重写(前提是继承关系)
当子类继承父类后,拥有 了父类所有可继承的属性和功能,并且可以调用父类的非私有功能,但是如果子类觉得父类的方法不够强大,可以按照子类自身的逻辑,对方法进行重写 方法覆盖 方法复写
方法声明相同,肯定是方法重写,方法重写可以使用@Override来验证。

方法重载:在同一个类中,名相同,参数不同!

重写的注意事项:
子类覆盖父类方法时,子类权限要大于等于父类的访问权限
public:公共的访问权限 任意包下都可以访问
默认:当前包下可以访问
private:本类中可以访问
public>默认>private 
返回值类型 方法名 参数列表都要保持一致
附加:返回值如果是基本数据类型 子父类方法必须一样
 如果是引用类型,子类方法返回值可以是父类返回值类型的子类;
二 抽象类
2.1 抽象方法:方法功能声明相同,但方法功能主体不同。那么这时也可以抽取,但只抽取方法声明,不抽取方法主体。这个方法就是一个抽象方法。
定义:public abstract void 名称();  有抽象方法的类也必须是抽象的
就是说有方法方法,但没有方法体的方法
推出抽象类:就是有抽象方法的类叫做抽象类。抽象类也必须被abstract修饰
2.2 抽象类
抽象类不能创建对象;只是规定必须有某个方法
特点:
抽象类和抽象方法必须都被abstract修饰。抽象方法一定要定义在抽象类中
抽象类不可创建对象,没有意义;
子类必须重写所有抽象父类的所有方法才可以创建对象,否则该子类还是一个抽象类
抽象类可以普通方法;
抽象类可以没有抽象方法; 唯一的意义就是不让创建对象!
细节:
抽象类肯定是一个父类;
abstract不能和private final static共存
父类引用指向子类对象:
一切使用父类引用的地方,都可以传入其子类对象。
调用的是每个子类重写后的方法