[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  阅读(249)  评论(0编辑  收藏  举报

导航