A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 小马儿 中级黑马   /  2017-3-26 19:48  /  1039 人查看  /  10 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

java中,重写和重载有什么区别
来自宇宙超级黑马专属安卓客户端来自宇宙超级黑马专属安卓客户端

10 个回复

倒序浏览
我的解释还没度娘清楚呢
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
回复 使用道具 举报
重载:同一个类,方法名相同,参数列表不同,Overload。重写:就是子类重写父类的方法,完全复制就行,Override。如果父类是抽象方法,子类重写时需要去掉抽象关键字abstract
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
zlwxf 发表于 2017-3-26 20:42
重载:同一个类,方法名相同,参数列表不同,Overload。重写:就是子类重写父类的方法,完全复制就行,Overri ...

嗯嗯,谢谢

来自宇宙超级黑马专属安卓客户端来自宇宙超级黑马专属安卓客户端
回复 使用道具 举报
小马儿 发表于 2017-3-26 20:43
嗯嗯,谢谢

个人理解,老师大概就是这么讲的
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
重载是实在同一个类中方法的名字相同,但是参数个数类型和返回值类型不同
方法重写指子类和父类的关系,子类重写了父类的方法,但是方法名字都必须相同
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
泪桥 高级黑马 2017-3-26 22:23:50
8#
涨知识了
回复 使用道具 举报
扁舟 中级黑马 2017-3-27 07:21:07
9#
重写是因为子类要用父类的方法,并且修改成部分自己独有的功能,总之重写父类就是要超越父类,使功能更强大,举个例子:例如,手机软件定期要更新某个功能
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
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;
        }
        //===========================================       
}
回复 使用道具 举报
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() {
        }
       
        //===========================================
}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马