Java入门(十九)——访问控制权限与覆盖

Java入门(十九)——访问控制权限与覆盖

目录

Java入门(十九)——访问控制权限与覆盖

访问控制权限

覆盖

范例代码


访问控制权限

      * 内容:
           - public        表示公开的,在任何位置都可以访问
           - protected     同包、子类可以访问
           - 缺省           只有同包可以访问
           - private       表示私有,只能在本类中访问
      - 访问控制权限修饰符可以修饰类、变量、方法
      - 当某个数据只希望子类使用,使用protected
      - 修饰符的范围:private<缺省<protected<public
      * 访问控制权限修饰符可以修饰:
           属性(4个都能用)
           方法(4个都能用)
           类(public和默认都能用,其他不行)
           接口(public和默认都能用,其他不行)
           ……

覆盖

      - 又称方法重写
      - 使用对象:当前父类中的方法已经无法满足当前子类的业务需求,子类有比要将父类中继承过来的方法进行重新编写,
      * 使用条件:
           - 方法重写方式在具有继承关系的父子类之间
           - 方法重写的时候:返回值类型相同,方法名相同,形参列表相同
           - 方法重写的时候:访问权限不能更低,可以更高
           - 方法重写的时候:抛出异常不能更多,可以更少
      - 建议粘贴复制,避免出错.如果不一样则视作新的方法。
      * 注意:
           - 私有方法不能继承,所以不能覆盖
           - 构造方法不能继承,所以不能覆盖
           - 静态方法不存在覆盖
           - 覆盖只针对方法,不谈属性
      - @override是为了子类在覆盖时,避免一个直接调用

范例代码


class A{
	public void s(int a,int b) {
		int c=a+b;
		System.out.println(c);
	}
	public void p() {
		String i="hello";
		System.out.println(i);		
	}
}
class B extends A{
	public void p() {//整个方法复制粘贴,修改里面的内容,即完成覆盖
		String i="你好";
		System.out.println(i);		
	}
}
class C extends A{
	public void p(String i) {
		System.out.println(i);		
	}
}

public class Override {
	public static void main(String[] args) {
		A a=new A();
		B b=new B();
		C c=new C();
		a.s(10, 20);
		a.p();
		b.s(1, 2);
		b.p();
		c.s(2, 1);
		c.p();
		c.p("哈喽");
	}

}

猜你喜欢

转载自blog.csdn.net/qq_61562251/article/details/135047227