zoukankan      html  css  js  c++  java
  • java方法重载 与 重写

    class ChongZai{

      public void a(int a);

      public void a(Strting a);

      public void a(int a,int b);

    }

    如上就是一个重载了 而重载要满足一下条件:

    1.必须是同一个类

    2.方法名(也可以叫函数)一样

    3.参数类型不一样或参数数量不一样

    重载的作用:

    还是以上面的例子

    ChongZai cz =new ChongZai();

    cz.a(1); //调用a(int a);

    cz.a("传的参数"); //调用a(String a)

    cz.a(1,2); //调用a(int a,int b)

    上面已经说了调用哪个方法了 而这个调用方法是程序按照你输入的参数来判断调用哪个方法的

    重载的功能:

    就比如说你做游戏 那么可能游戏可以有多个人完 而完的人数又不确定是几个人 那么就可以用到重载了

    比如说最多3个人完 那么你可以定义3个参数

    public void a(String a);

    public void a(String a,String b);

    public void a(String a,String b,String c);

    两个人那么你就调用2个参数的方法 3个人你就调用3个参数的方法

    方法的重写:

    1、在子类中可以根据需要对从基类中继承来的方法进行重写。

    2、重写的方法和被重写的方法必须具有相同方法名称、参数列表和返回类型。

    3、重写方法不能使用比被重写的方法更严格的访问权限。

    程序code:

    复制代码
    class Person{
        private int age;
        private String name;
        
        public void setAge(int age){
            this.age = age;
        }
        public void setName(String name){
            this.name = name;
        }
        public int getAge(){
            return age;
        }
        public String getName(){
            return name;
        }
        
        public String getInfo(){
            return "Name is:"+name+",Age is "+age;
        }
    }
    class Student extends Person{
        private String school;
        
        public void setSchool(String school){
            this.school = school;
        }
        public String getSchool(){
            return school;
        }
        public String getInfo(){
            return "Name is:"+getName()+",Age is "+getAge()+",School is:"+school;
        }
    }
    public class TestOverRide{
        public static void main (String args[]){
            Student student = new Student();
            Person person = new Person();
            person.setAge(1000);
            person.setName("lili");
            
            student.setAge(23);
            student.setName("vic");
            student.setSchool("shnu");
            
            System.out.println(person.getInfo());
            System.out.println(student.getInfo());
        }
    }
    复制代码

    执行结果:

  • 相关阅读:
    mysql数据库安装与配置
    redis主从配置+sentinel哨兵模式
    Oracle 本地验证和密码文件
    Oracle 12c hub和leaf的转换
    oracle 12c CPU资源隔离
    oracle12 listagg 与 wm_concat行列转换
    Oracle 12c rac搭建
    ClassLoader.loadClass()与Class.forName()的区别《 转》
    docker 安装mysql8.0
    spring boot @EnableWebMvc禁用springMvc自动配置原理。
  • 原文地址:https://www.cnblogs.com/AceIsSunshineRain/p/5056292.html
Copyright © 2011-2022 走看看