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("中","国");//根据方法里的参数,掉用第三个方法
        }

}

时间: 2024-10-30 20:40:48

java--方法重写与重载的相关文章

Java方法重写与方法重载

继承和多态都是面向对象程序设计的特点.使用继承可以在一个父类的基础上再创建一个子类,这个子类不但拥有父类已有的属性和方法,还可以创建属于自己的属性和方法.由于子类和父类之间的关系,从而引出了方法重写和方法重载的问题.方法重写及方法重载在继承和多态性方面的应用中会存在很多问题,这些概念很容易混淆,掌握重写和重载的区别对学会使用多态的方式编写程序.提高程序的可维护性奠定了基础.一.方法重写(0veriding)如何定义重写:在Java程序中,类的继承关系可以产生一个子类,子类继承父类,它具备了父类所

类的继承,抽象类,接口,方法重写和重载

类的继承 C#与java:1.C#中继承用“:”,Java中继承用extends2.重写父类的方法,C#中需要关键字override,Java中不需要3.C#中调用父类的成员用base,Java中使用super4.子类的构造方法中如果没有显示的调用父类的构造方法,   编译器会自动在第一行代码添加super() 抽象类: 1.含有抽象方法的类必须是抽象类,抽象类中不一定有抽象方法2.抽象类的子类如果是抽象类,可以不需要重写父类的抽象方法3.抽象类不能被实例化,构造方法和静态方法不能是抽象的 接口

Java 方法重写和 Super 关键字

方法重写 在 Java 继承中,也存在着重写的概念,其实就是子类定义了和父类同名的方法. 定义:方法名称相同,返回类型相同,参数也相同.代码如下: package hello; class Father01{ public void tell(){ System.out.println("父类调用方法"); } } class Son01 extends Father01{ public void tell(){ System.out.println("子类调用方法"

继承、多态及方法重写、重载

1.多态: 多态指的是同一个方法的调用,由于对象不同可能会有不同的行为.现实生活中,同一个方法,具体实现完全不同. 多态的要点: (1)多态是方法的多态,不是属性的多态(多态与属性无关): (2)多态的存在要有3个必要条件:继承.方法重写.父类引用指向子类对象: (3)父类引用指向子类对象后,用该父类引用调用子类重写的方法,此时多态就出现了. /** * - - - (1)多态是方法的多态,不死属性的多态(多态与属性无关): * - - - (2)多态的存在要有3个必要条件:继承.方法重写.父类

java的重写、重载、覆盖的区别

多态性 通过继承,一个类可以用作多种类型:可以用作它自己的类型.任何基类型,或者在实现接口时用作任何接口类型.这称为多态性 重载 每个类型成员都有一个唯一的签名.方法签名由方法名称和一个参数列表(方法的参数的顺序和类型)组成.只要签名不同,就可以在一种类型内定义具有相同名称的多种方法.当定义两种或多种具有相同名称的方法时,就称作重载.即重载时相同名称成员的参数列表是不相同的(参数顺序和类型). 继承,重写和隐藏成员 (重写 = 覆盖) 派生的类型继承其基本类型的所有成员:也就是说,这些成员是在派

java中重写、重载的区别

1.重写[针对父类与子类而言] 子类与父类间存在多态性,对父类的函数进行重新定义.如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding). 在Java中,子类可继承父类中的方法,而不需要重新编写相同的方法.但有时子类并不想原封不动地继承父类的方法,而是想作一定的修改,这就需要采用方法的重写.方法重写又称方法覆盖. 其执行的先后顺序如下: 1 package com.extend.test; 2 3 //父类 4 public class Father {

java方法重写返回值类型

重写(Overriding)(1) 父类与子类之间的多态性,对父类的函数进行重新定义.如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding).在Java中,子类可继承父类中的方法,而不需要重新编写相同的方法.但有时子类并不想原封不动地继承父类的方法,而是想作一定的修改,这就需要采用方法的重写.方法重写又称方法覆盖.(2)若子类中的方法与父类中的某一方法具有相同的方法名.返回类型和参数表,则新方法将覆盖原有的方法.如需父类中原有的方法,可使用super关键字

Java:Java的重写与重载区分

最明显的区别为:重写只存在于子类与父类中,重载存在于一个类中. 具体区别如下: 一.重写(override) override是重写(覆盖)了一个方法,以实现不同的功能.一般是用于子类在继承父类时,重写(重新实现)父类中的方法. 重写(覆盖)的规则: 1.重写方法的参数列表必须完全与被重写的方法的相同,否则不能称其为重写而是重载. 2.重写方法的访问修饰符一定要大于被重写方法的访问修饰符(public>protected>default>private). 3.重写的方法的返回值必须和被

JAVA方法重写

方法重写: public class one { void ff () { System.out.println("nihao"); } } class two extends one { void ff() { System.out.println("YES"); } } //这个时候,two类继承于one类,而且重写了ff方法,就是输入和父类相同名称的方法(权限不能更加严格)!进行重写. 原文地址:https://www.cnblogs.com/dongwei-

什么是多态、方法重写与重载

什么是多态 多态的概念呢比较简单,就是同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果. 如果按照这个概念来定义的话,那么多态应该是一种运行期的状态. 为了实现运行期的多态,或者说是动态绑定,需要满足三个条件. 即有类继承或者接口实现.子类要重写父类的方法.父类的引用指向子类的对象. public class Parent{ public void call(){ sout("im Parent"); } } public class Son extends Parent