黑马程序员技术交流社区

标题: 交流交流 [打印本页]

作者: 小马儿    时间: 2017-3-26 19:48
标题: 交流交流
java中,重写和重载有什么区别

作者: javaeeheima    时间: 2017-3-26 20:07
我的解释还没度娘清楚呢

作者: tiancaixb    时间: 2017-3-26 20:34
只有重载吧

作者: zlwxf    时间: 2017-3-26 20:42
重载:同一个类,方法名相同,参数列表不同,Overload。重写:就是子类重写父类的方法,完全复制就行,Override。如果父类是抽象方法,子类重写时需要去掉抽象关键字abstract

作者: 小马儿    时间: 2017-3-26 20:43
zlwxf 发表于 2017-3-26 20:42
重载:同一个类,方法名相同,参数列表不同,Overload。重写:就是子类重写父类的方法,完全复制就行,Overri ...

嗯嗯,谢谢


作者: zlwxf    时间: 2017-3-26 20:45
小马儿 发表于 2017-3-26 20:43
嗯嗯,谢谢

个人理解,老师大概就是这么讲的

作者: zhouxiaoyang    时间: 2017-3-26 21:01
重载是实在同一个类中方法的名字相同,但是参数个数类型和返回值类型不同
方法重写指子类和父类的关系,子类重写了父类的方法,但是方法名字都必须相同

作者: 泪桥    时间: 2017-3-26 22:23
涨知识了
作者: 扁舟    时间: 2017-3-27 07:21
重写是因为子类要用父类的方法,并且修改成部分自己独有的功能,总之重写父类就是要超越父类,使功能更强大,举个例子:例如,手机软件定期要更新某个功能

作者: 小麦芽    时间: 2017-3-27 11:37
class Person {

        public int num;
        public String name;
       
        //---------构造Person()方法也是重写构造方法,因为方法名一样,参数不一样---------------------------------
        public Person(int num) {
                super();
                this.num = num;
        }

        public Person(String name) {
                super();
                this.name = name;
        }

        public Person(int num, String name) {
                super();
                this.num = num;
                this.name = name;
        }
        //===========================================
       
        //-----------两个setValue方法都是重写方法,因为方法名一样,参数不一样-------------------------------
        public void setValue(int num){
                this.num = num;
        }
       
        public void setValue(int num,String name){
                this.num = num;
                this.name = name;
        }
        //===========================================       
}
作者: 小麦芽    时间: 2017-3-27 11:47
package com.heima.eclipse;
//-------------接口-----------------
interface Run{
       
        void runing();
}
//-------------抽象类-----------------
abstract class Driver{
       
        abstract void driving();
}

class Person extends Driver  implements Run {

        public int num;
        public String name;
       
        //---------构造Person()方法也是重写构造方法,因为方法名一样,参数不一样---------------------------------
        public Person(int num) {
                super();
                this.num = num;
        }

        public Person(String name) {
                super();
                this.name = name;
        }

        public Person(int num, String name) {
                super();
                this.num = num;
                this.name = name;
        }
        //===========================================
       
        //-----------两个setValue方法都是重写方法,因为方法名一样,参数不一样-------------------------------
        public void setValue(int num){
                this.num = num;
        }
       
        public void setValue(int num,String name){
                this.num = num;
                this.name = name;
        }
        //===========================================       

       
       
       
        //-----------这个方法是重载接口Run中的的runing方法-------------------------------
        @Override
        public void runing() {
                System.out.println("跑步");
        }

        //-----重载------这个方法就是重载抽象类drive中的driving方法-------------------------------
        @Override
        void driving() {
        }
       
        //===========================================
}





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2