子类重写父类的方法或者说是方法的覆盖(overriding)
方法重写的规则:一旦方法重写后,调用的一定是重写的方法,
当父类的方法不能满足子类的要求时,子类可以对父类的方法进行重写
1一定是在子类中
2)
方法重写和方法重载的区别
Object类:是所有的父类(打开Java里的API)
To String方法-输出的是地址,但是通常对于开发者来说无意义,可以重写
添加的方式:soures-G-to String
Equals方法-比较字符串的内容是否相同,需要我们重写默认的类的方法
Object类里的to String,也需要我们自己重新写object类中的方法,从而达到输出内容的效果
多态优化:一定建里在重写的基础上
向上转型:父类的引用指向了子类的实例
Abstract修饰符
抽象方法:
1)使用abstract修饰的方法,叫做抽象方法
- 抽象方法没有方法体,即没有划过好花括号
- 抽象方法所在的类要声明成抽象类
- 子类必须重新父类中中所有的抽象方法,如果不重写,子类也被声明成抽象类
- 抽象方法也可以在接口中
抽象类:
- 使用abstract修饰的类叫做抽象类
- 抽象类可以有普通方法,也可以有抽象方法,也可以没有抽象方法
- 抽象类不能实例化,因为没有意义,但是还是会
向上转型和向下转型
向上转型:父类的引用指向子类的实例 子-父
向下转型:父类的引用不能调用子类中独有的方法,如果想使用子类特有的方法,需要将子类引用转换成父类的对象名(引用数据类型的强制转换)
Instanceof判断某个引用指向的是哪个实例 父类-子类
类型转换异常
方法重写和重载的区别:
重写:方法名相同 输出的返回类型相同或者是其子类的类型 参数列表相同 访问的权限不能严于父类 ,且重写是不在一个类中,必须是父类和子类的关系
重载:方法名相同 参数的个数和类型不同 与返回值和访问修饰符无关 且必须是在同一个类中才能说是重载