我是靠谱客的博主 多情店员,最近开发中收集的这篇文章主要介绍java方法覆写_Java中方法的覆写,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

所谓方法的覆写override就是子类定义了与父类中同名的方法,但是在方法覆写时必须考虑权限,即被子类覆写的方法不能拥有比父类方法更加严格的访问权限。

修饰符分别为public、protected、default、private。他们的访问权限如下图所示。

5d2f93b1b2ddfca5bef149bb54b12b5e.png

用public修饰的类在本类、同包、子类、其他包中互相访问都是可以的。

用protected修饰的类在本类、同包、子类中互相访问都是可以的,protected不可以在包外没有继承关系的类中互相访问。

就说明用default修饰的类在本类、同包中互相访问都是可以的,default不可以在包外不管有没有继承关系的类都不可以互相访问。

用private修饰的类只能在本类中访问。

它们的访问权限大小是 public > protected > default > private;

如果在父类中的使用public定义的方法,则在子类中的访问权限必须是public,否则程序无法通过编译。

class Person{

void print(){

System.out.println("Person --> void print(){}");

}

}

class Student extends Person{

public void print(){

System.out.println("Student --> void print(){}"); //覆盖父类中的方法,扩大了权限

}

}

public class OverrideDemo01 {

public static void main(String[] args){

new Student().print();

}

}

父类中定义的private方法,在子类中定义成default方法,这种不是方法的覆写。

class Person{

private void print() {

System.out.println("Person --> void print(){}" );

}

public void fun() {

this.print();

}

}

class Student extends Person{

void print(){

System.out.println("Student --> void print(){}");

}

}

public class OverrideDemo04 {

public static void main(String[] args) {

new Student().fun();

}

}

输出结果:Person --> void print(){}可见调用的方法是父类的方法,也就是说此时子类并没有覆写父类中的方法,而是子类中重新定义了一个新的方法。

父类子类中如果声明了相同的属性时,则在子类中直接访问时一定采用“就近访问原则”, 即先找到本类中的属性,如果此时要调用父类中的属性,直接使用“super.属性”格式即可。

覆写与重载的区别

c22840787635b2438147928e2578f144.png

最后

以上就是多情店员为你收集整理的java方法覆写_Java中方法的覆写的全部内容,希望文章能够帮你解决java方法覆写_Java中方法的覆写所遇到的程序开发问题。

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

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

评论列表共有 0 条评论

立即
投稿
返回
顶部