十三.覆写

方法覆写

腹泻 = 重写(override)

public class Person {
	public void show(String name){
		System.out.println("父类");
	} 
}

public class Teacher extends Person {
	
	public void show(String name){
		System.out.println("子类");
	} 
}
public class Test {
	
	public static void main(String[] args) {
		Teacher teacher = new Teacher();
		teacher.show("");
	}
}	

输出结果:子类

看上面代码,就是用子类的方法覆盖的父类的方法

但是当父类的方法是私有的那就不能覆盖了,子类调用的就是自己的方法了而不是覆写的。

方法覆写的限制

访问权限:对于访问控制权限现在已经接触过三种:public > default(默认) >private

Override(重写)

  • 只能发送在有继承关系的类中
  • 方法名,方法返回值,方法参数列表都要相同
  • 在子类中的重写方法访问修饰符不能大于父类

Overloaging(重载)

  • 在同一个类中
  • 方法名相同,参数个数或者类型不同,没有返回值类型
  • 与访问权限无关

属性覆盖

例子:

public class Person {
	
	public String name = "父类";

}

class Teacher extends Person {
	
	public String name = "子类";
	
	public void show(){
	 //	System.out.println(super.name);		//父类
		System.out.println(this.name);		//子类
	}
}

输出:

public class Test {
	
	public static void main(String[] args) {
		Teacher teacher = new Teacher();
		teacher.show();			
	}
}	

用this关键字的话拿到的就是子类本身的的属性
用super关键字就会拿到父类的属性,当然如果父类属性是私有的就会报错

final关键字

final修饰类

  • 类不能被继承,被final修饰的类没有子类,类里的方法和属性也不能被覆写

final修饰方法

  • 被修饰的方法不能被子类覆写,和被private修饰一样。
  • 但是可以被重载

final修饰变量

  • 被final修饰的基本变量,值就不能再被改变了
  • 被final显示的引用变量,内容可以改变,但是引用地址不能改变。

final修饰参数
+被final修饰的参数只能调用,不能被改变

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值