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

    方法重写

    /*方法重写(一般多用在继承上)
          定义:它是指子类和父类的关系,子类重写了父类的方法。    两个方法返回值、方法名、参数列表必须完全一致!
          出现原因:在Java中,子类可继承父类中的方法,而不需要重新编写相同的方法。但有时子类并不想原封不动地继承父类的方法,而是想作一定的修改,这就需要采用方法的重写。方法重写又称方法覆盖。*/
    
    class Person{
        private int age;
        private String name;
        public int getAge() {return age;}
        public void setAge(int age) {this.age = age;}
        public String getName() {return name;}
        public void setName(String name) {this.name = name;}
        public String getInfo(){return "名字是:"+getName()+",年龄是: "+getAge();}
    }
    class Student extends Person{
        private String school;
        public void setSchool(String school){ this.school = school;}
        public String getSchool(){ return school;}
        public String getInfo(){return "名字是:"+getName()+",年龄是: "+getAge()+",学校是:"+school;}//这里重写了父类的方法
    }
    
    public class Overiding {
         public static void main (String args[]){
                Student student = new Student();
                Person person = new Person();
                person.setAge(40);
                person.setName("张三");
                
                student.setAge(23);
                student.setName("李四");
                student.setSchool("育英中学");
                
                System.out.println(person.getInfo());
                System.out.println(student.getInfo());
            }
        
    }

    方法重载

    /*方法重载
          定义:在同一个类中相同的方法名,参数不同而已(参数类型不一样或参数数量不一样)
          出现原因:
                   在编程过程中,是要遵守编程规范的,这就要求方法的命名是要有意义的,而有的方法可能面临着,会有不用的参数列表,
                   这时会用到重载,这样,既可以表示方法的意义,又表示这些方法是相关方法,方便调用。
                   所以,方法重载,很大程度是为了程序的可读性,即使不用,也是不会妨碍程序运行的。*/
    
    class Car{
        public void Myf(int a) {System.out.println("我是方法1");}
        public void Myf(String a) {System.out.println("我是方法2");}
        public void Myf(String a,String b) {System.out.println("我是方法3");}
    }
    
    public class Overloading {
         public static void main (String args[]){
              Car car1=new Car();
              car1.Myf(2);//根据方法里的参数,掉用第一个方法
              car1.Myf("中");//根据方法里的参数,掉用第二个方法
              car1.Myf("中","国");//根据方法里的参数,掉用第三个方法
            }
        
    }

  • 相关阅读:
    Win7旗舰版中的IIS配置asp.net的运行环境
    jquery $(document).ready() 与window.onload的区别
    DEFAULT CURRENT_TIMESTAMP
    存储过程 跳出
    rabbitMQ 重试
    oracle update left join 写法
    error: snap "eclipse" has "install-snap" change in progress
    数据库去空格 去table 去回车符号 去重
    分组 拼接字段
    msyql 去重
  • 原文地址:https://www.cnblogs.com/dshvv/p/5235600.html
Copyright © 2011-2022 走看看