方法重写:1.在子类中,重写父类方法。要求: 方法名相同,参数列表相同,返回值相同,访问控制符不能比父类更严格。
privated的属性和方法不能被继承,不能被重写。
overload和override的区别:
overload是方法重写:发生在子类中,方法名相同,返回值相同,参数列表相同,访问修饰符不能比父类更严格。
override是方法重载:放生在同一个类中,方法名相同,与返回值和访问修饰符无关,参数列表不同。
抽象类:使用abstract关键字修饰的类,称为抽象类。抽象类不能被实例化。
抽象方法: 使用abstract关键字修饰,而且没有方法体的方法称为抽象方法。子类继承抽象类,那么子类必须重写父类所有的抽象方法。除非子类也是抽象类,那样可以不需要重写父类的抽象类。抽象方法必须在抽象类中。抽象类中的方法不一定必须是抽象方法。
final:
(1)final修饰的类,是最终类,final修饰的类不能被继承。
(2)final修饰的方法,是最终方法,子类不能重写final方法。
(3)final修饰的变量,是常量,不可修改。常量的所有字母大写!
static:
(1)static可以用于修饰方法,属性,代码块。
(2)static修饰的方法和属性,称为类属性和类方法(静态属性和静态方法)。
(3)静态属性和静态方法,调用时直接使用类名直接调用,也可以使用实例化后的对象名调用。
注意:
1、成员属性和成员方法,也叫实例属性和实例方法,只能使用实例化后的对象名使用。
2、类属性和类方法是属于类的,在类装载的时候直接声明,而成员属性和成员方法是属于对象的,在对象的实例化时才可以产生。
3、静态属性和方法将先于非静态属性和方法产生。
4、非静态方法可以调用静态属性,静态方法中不能调用非静态属性。(静态方法先于对象产生,因此没有成员属性和方法)
5、由于类属性和类方法是属于类的,因此只会在类装载的时候产生一份。也就是说一个类的静态属性只能在类装载的时候产生一份,后续使用该类实例化的多个对象将共用同一个静态变量。
静态方法中不能使用this和super(this代表本类对象,super代表父类对象,所以产生静态方法时,还没有对象)。
多态:是同一种事物,由于条件的不同,执行多种操作,展示出不同的结果。(同一个引用类型,由于实例的对象不同,操作各不相同)
(1)优点:消除类型之间的耦合性、可替换性、可扩充性、接口性、灵活性、简化性。
(2)三个必要条件: 子类继承父类 、子类重写父类方法、父类引用指向子类的对象。
(3)当使用多态方式调用方法时,首先检查父类中是否有该方法,如果没有,则编译错误;如果有,再去调用子类的同名方法。
补充: instanceof:java 中的instanceof 运算符是用来在运行时指出对象是否是特定类的一个实例。instanceof通过返回一个布尔值来指出,这个对象是否是这个特定类或者是它的子类的一个例。写法:结果 = A instanceof B (A是对象,B是类,B是A的父类或者是object类,将会返回tr