[Java学习]面向对象-类的继承;方法覆盖
一、类的继承
实现方法:
public Class SubClass extends SuperClass{ }
继承最基本作用:
代码重用。
继承最重要的作用:
方法可以重写。
关于类的继承:
子类将继承父类除构造方法外的所有数据和方法,包括私有的。
但子类无法直接访问父类中的私有数据,可以通过方法间接访问。
若类无显式继承其他类,则默认继承SUN提供的java.lang.Object类。
二、方法的覆盖
定义
子类将父类中方法重写
使用场景
父类方法无法满足子类使用需求。
发生覆盖的条件
- 发生具有继承关系的类之间
- 相同的方法名、参数列表、返回类型
- 重写方法不能比被重写方法拥有更低的访问权限 (低 private<default<public 高 ) ?why
- 重写方法不能比被重写方法抛出更宽泛的异常 ?
- 私有方法不能被覆盖
- 静态方法不存在覆盖
public class Test{
public static void main(String[] args) {
A a=new B();
//静态方法不存在覆盖,因为静态方法执行和对象无关。
//a调哪个的方法 由A a 决定
a.method();
}
}
class A{
public static void method() {
System.out.println("A's method.");
}
}
class B extends A{
public static void method() {
System.out.println("B's method.");
}
}
- 覆盖指的是成员方法,和成员变量无关。
posted on 2019-02-27 21:02 coding_gaga 阅读(255) 评论(0) 编辑 收藏 举报