/*
当多个类出现相同的功能,但是功能主题不同,这时可以进行向上抽取。
这时,只抽取功能定义,而不抽取功能主体。
抽象类的特点:
1,抽象方法一定在抽象类当中
2,抽象类和抽象方法都必须被abstract关键字修饰
3,抽象类不可以用new创建对象,因为调用抽象方法没有意义
4,抽象类中的方法要被使用,必须由子类复写多有抽象方法后,建立子类对象的调用]
如果子类只覆盖了部分抽象方法,那么该子类还是一个抽象类。
当多个类出现相同的功能,但是功能主题不同,这时可以进行向上抽取。
这时,只抽取功能定义,而不抽取功能主体。
抽象类的特点:
1,抽象方法一定在抽象类当中
2,抽象类和抽象方法都必须被abstract关键字修饰
3,抽象类不可以用new创建对象,因为调用抽象方法没有意义
4,抽象类中的方法要被使用,必须由子类复写多有抽象方法后,建立子类对象的调用]
如果子类只覆盖了部分抽象方法,那么该子类还是一个抽象类。
*/
/*
接口:初期理解,可以认为是一个特殊的抽象类
当抽象类中的方法是抽象的,那么该类可以通过接口的形式来表示
接口定义的格式特点:
1,接口中常见定义:常量,抽象方法
2,接口中的成员都有固定修饰符。
常量:public static final
方法:public abstact
接口:是不可以创建对象的,因为有抽象方法
需要被子类实现,子类对接口的抽象方法全都覆盖后,子类可以实例化,
否则子类还是一个抽象类。
接口可以被类多实现,也是对多继承不支持的转换格式,java实现多实现。
*/
覆盖:
1,子类覆盖父类,必须保证子类权限大于父类权限。否则编译失败
2,静态只能覆盖静态。
重载:只看同名函数的参数列表
重写:子类方法要一模一样。
final:作为一个修饰符
1,可以修饰类,函数,变量
2,被final修饰的类不可以被继承。为了避免被继承,被子类复写功能
3,被final修饰的方法不可以被复写
4,被final修饰的变量是一个常量只能赋值一次,既可以修饰成员变量,又可以修饰局部变量。当在描述事物时,一些数据的出现值是固定的,那么这时为了增强阅读性,都给这些值起个名,方便阅读,而这个值不需要改变,所以加上final修饰。
5,内部类定义在类中局部位置上时,只能访问该局部被final修饰的局部变量。