Java继承——方法重写

一、概念

什么是方法重写,重载(方法名称一样,参数列表不一样),重写(完成做到重写,都一样,实现功能不一样)

  • 方法重写是指子类可以根据需要对父类继承来的方法进行改写,是多态机制的前奏
    注意点
  • 重写方法必须和被重写方法具有相同的方法名称、参数列表和返回值
public void printInfo(){
	super.printInfo();						//用super调用父类方法
	System.out.println("子类name=" + name);	//不写父类的会优先调用子类方法
}
  • 重写方法不能比被重写方法有更加严格的访问权限
private void printInfo(){
	super.printInfo();						
	System.out.println("子类name=" + name);	
}
  • 父类中的私有方法,不能被重写
    能写上,但是主函数不能调用,报错
private void printAddr(){
	System.out.println("私有方法");	
}
  • 在子类重写的方法中继续使用父类被重写的方法可以通过super.函数名获取

二、代码演示

class Person{//class 相当于c语言的struct
	String name;
	private String address;
	
	public void printInfo(){
		System.out.println("name=" + name);
	}
	
	private void printAddr(){
		System.out.println("address=" + address);
	}
}

class Student extends Person{
	int score;
	
	/*重写方法必须和被重写方法具有相同的方法名称、参数列表和返回值*/
	public void printInfo(){
		super.printInfo();						//用super调用父类方法
		System.out.println("子类name=" + name);	//不写父类的会优先调用子类方法
	}
	
	/*重写方法不能比被重写方法有更加严格的访问权限*/
//	private void printInfo(){
//		super.printInfo();						
//		System.out.println("子类name=" + name);	
//	}
	
	/*父类中的私有方法,不能被重写*/
//	这里不会报错,但是主函数无法调用(报错)
//	private void printAddr(){
//		System.out.println("私有方法");
//	}
}

public class Test {
	public static void main(String[] args) {	
		Student s = new Student();
		s.name = "xiaowei";
		s.printInfo();
	}
}

师承上官可编程 —— 陈立臣

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dz小伟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值