重写和多态
继承方法后,可以选择重写方法,要求方法名相同,作用域要小于等于父类的作用域 返回值可以要相同或是其子类 参数列表需要相同
父类的静态方法不能被重写为非静态方法 父类的非静态方法也不能被修改为子类的静态方法
子类可以定义与父类同名的静态方法,以便于子类隐藏父类的静态方法(静态方法中不能使用super)
父类的私有方法不能被子类覆盖
子类不能抛出比父类更多的异常
重载和重写的区别
重载 发生在同一个类 方法名相同 参数列表不同(参数类型和参数数量不同)返回值不同
重写 发生在子类中 方法名相同 参数列表相同 返回值相同或是子类 访问修饰符不能比父类严格
方法的重写是是实现多态的基础
子类向父类的转换称为向上转型
父类类型 变量名 = new 子类类型()
为了调用子类特有方法,采用向下转型
子类类型 变量名 = (子类类型)父类类型的变量名
抽象类 抽象类无法实例化 抽象类中可以存在正常的方法
抽象方法 抽象方法不存在方法体
抽象方法必须在抽象类中
子类必须实现继承的抽象方法,除非子类也是抽象类