zoukankan      html  css  js  c++  java
  • java基础之十一:方法重写

          看到标题,是否想起前面有一篇文章叫方法重载。什么是方法重写呢?在Java编程语言中,子类可继承父类中的方法,而不需要重新编写相同的方法。但有时子类并不想原封不动地继承父类的方法,而是想作一定的修改,这就需要采用方法的重写。方法重写又称方法覆盖。

    方法的重写有几个特点:

    1)发生在子类,有子类就有继承

    2)父类方法的参数列表必须完全与被子类重写的方法的参数列表相同

    3)父类的返回类型必须与被子类重写的方法返回类型相同

    4)Java中规定,被子类重写的方法不能拥有比父类方法更加严格的访问权限

    我们来写一个例子,介绍方法的重写。

    新建一个父类,Student.java

        package lesson01;  
          
        public class Student {  
            int getAge(){  
                return 0;  
            }  
              
        } 

    写一个子类,CollegeStudent.java 继承Student类

        package lesson01;  
          
        public class CollegeStudent extends Student {  
            int getAge(){  
                return 10;  
            }  
          
        } 

    我们的测试类MyClass.java 这样写。

        package lesson01;  
          
        public class MyClass {  
              
            public static void main(String[] args) {  
                  
                Student st = new CollegeStudent();  
                System.out.println(st.getAge());  
                  
            }  
              
        } 

    运行下,发现可以打印出结果是10,而不是打印0.也就是子类实例对象调用了自己的方法,虽然这个方法返回值,方法名称,参数都和父类方法相同,但是里面的返回值不相同,这就是方法的重写。

           说到方法重写,不得不提文章开头的方法重载,他们的根本区别就是:方法重写是在子类和父类之间,而方法重载是在同一个类里面。方法重写,子类和父类方法必须保持,返回类型,方法名称,参数个数和参数类型完全保持一致。而方法重载,只有方法名称相同,其他都可以不相同。

    还记得前面final文章中的一点:final方法不能被子类的方法覆盖

  • 相关阅读:
    58同城2018提前批前端笔试题总结
    两栏式布局和三栏式布局
    Less学习总结
    网易2018提前批前端笔试编程题
    编写一个函数isMerge,判断一个字符串str是否可以由其他两个字符串part1和part2“组合”而成
    【转】 解释下浏览器是如何判断元素是否匹配某个 CSS 选择器?
    JS数组精简的十三个技巧
    Docker常用命令(命令大全)
    ES6之新的数据结构
    JavaScript高级程序设计(第3版)每章小结(1-5)
  • 原文地址:https://www.cnblogs.com/jshtest/p/9150500.html
Copyright © 2011-2022 走看看