我是靠谱客的博主 沉默大地,最近开发中收集的这篇文章主要介绍方法的覆写【重写】一、方法的重写概念重写父类方法实现覆写需要哪些要求1.要求子类的方法名称和父类的一致,而且参数列表要一致。2.如果子类的方法的访问权限和父类的方法的访问权限不同呢?3.如果子类覆写的方法和父类的方法返回值不一样呢?面试题:总结:,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一、方法的重写概念

之前说了子类富国继承了一个父类,那么子类就会拥有父类的方法(不包括构造方法)和属性,此时如果在子类中定义了一个和父类一样的方法,这种现象叫做子类覆写(重写)了父类的方法。

重写父类方法

public class Person {
	public void getInfo() {
		System.out.println("这是Person类中的getInfo方法");
	}
}

public class Student extends Person{
	//定义一个和父类Person一样的getInfo方法
	public void getInfo() {
		System.out.println("这是Student类中的getInfo方法");
	}
}

public class Hello {
	public static void main(String[] args) {
		//实例化一个子类对象
		Student s= new Student();
			s.getInfo();
	}
}
这是Student类中的getInfo方法

发现了调用的是子类中的方法,就是说子类的getInfo()覆盖了父类的getInfo()方法,其实上在调用的时候先在子类中查找调用的方法,如果有则直接调用,如果没有就往父类中和查找,如果最终都没有找到,则编译不通过。

实现覆写需要哪些要求

1.要求子类的方法名称和父类的一致,而且参数列表要一致。

public class Person {
	public void getInfo() {
		System.out.println("这是Person类中的getInfo方法");
	}
}
public class Student extends Person{
	//定义一个和父类Person一样的getInfo方法
	public void getInfo(String name) {
		System.out.println("这是Student类中的getInfo方法");
	}
}
public class Hello {
	public static void main(String[] args) {
		//实例化一个子类对象
		Student s= new Student();
			s.getInfo();
	}
}
这是Person类中的getInfo方法

在主方法调用了getInfo()方法,会在Student类中查找该方法,但是Student类中没有这个无参数的getInfo()方法,所以往父类中查找,最后就调用了父类的getInfo()。

2.如果子类的方法的访问权限和父类的方法的访问权限不同呢?

public class Person {
	public void getInfo() {
		System.out.println("这是Person类中的getInfo方法");
	}
}
public class Student extends Person{
	//定义一个和父类Person一样的getInfo方法
	private void getInfo() {
		System.out.println("这是Student类中的getInfo方法");
	}
}
Cannot reduce the visibility of the inherited method from Person

子类中重写的方法的访问权限只能比父类的大,不能比父类的小,也就是说子类重写的方法不能拥有比父类更为严格的权限。

正常开发访问权限都是一样的。

3.如果子类覆写的方法和父类的方法返回值不一样呢?

如果父类方法和子类覆写的方法的访问权限一样则返回值必须一致,如果访问权限不一样则返回值可以不一致。(正常开发中返回值和访问权限都是一致的)

面试题:

请说明重载和重写的区别?

【重载】

1.发生在一个类中

2.对返回值没有要求(但是正常都会保持一致)

3.对访问权限没有要求(但是正常都会保持一致)

4.表示重载的单词是 overloading

【重写】

1.发生在继承关系中(子类和父类)

2.子类不能拥有比父类更小的访问权限

3.如果子类和父类访问权限一致则返回值必须要相同,否则可以不同

4.表示重写的单词是 override

总结:

1.方法重写的概念

2.方法重写的要求

3.如果子类覆写了父类的方法,那么在调用的时候优先调用子类的方法

最后

以上就是沉默大地为你收集整理的方法的覆写【重写】一、方法的重写概念重写父类方法实现覆写需要哪些要求1.要求子类的方法名称和父类的一致,而且参数列表要一致。2.如果子类的方法的访问权限和父类的方法的访问权限不同呢?3.如果子类覆写的方法和父类的方法返回值不一样呢?面试题:总结:的全部内容,希望文章能够帮你解决方法的覆写【重写】一、方法的重写概念重写父类方法实现覆写需要哪些要求1.要求子类的方法名称和父类的一致,而且参数列表要一致。2.如果子类的方法的访问权限和父类的方法的访问权限不同呢?3.如果子类覆写的方法和父类的方法返回值不一样呢?面试题:总结:所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(44)

评论列表共有 0 条评论

立即
投稿
返回
顶部