2018/01/07JAVA 基础 / 接口与继承:重写【子类继承并覆盖父类的对象方法】、隐藏【子类继承并覆盖父类的类方法】与实现类实现接口方法の区别
2018-01-07 22:00
1351 查看
重写
方法重写/重写的定义:又叫覆盖/override,是指子类可以继承父类的对象方法/实例化方法/非静态方法,在继承后,重复提供该方法[但方法内容不一致]。方法的重写是子类覆盖父类的对象方法。
调用子类的对象方法:用指向子类对象的引用调用该子类方法。i.e.
隐藏
隐藏的定义:是指子类可以继承父类的类方法/静态方法,在继承后,重复提供该方法[但方法内容不一致] 。隐藏就是子类覆盖父类的类方法。
调用子类的对象方法:直接用子类名调用子类的类方法。i.e.
[b]实现类实现接口的方法 [/b]
接口的定义:接口就像是一种约定/承诺。举例来说:
是指ADHero这个类一定可以实现AD接口中的方法。
但是,为了看到实现AD接口内方法的效果,需要在ADHero类中重写这个对象方法。若AD中的方法为静态方法/类方法且为非空体方法,则在AD类的主方法中/实现类的主方法中想要调用AD类的方法必须用AD.方法名的形式,而调用相应的ADHero静态方法,则也必须用ADHero类的引用去调用该方法,或是ADHero类直接调用该ADHero静态方法。
实现类的对象方法的调用:若引用类型是实现类,且引用指向的对象类型也是实现类,则可以通过该引用调用实现类的对象方法。若不一致,请参考多态
可见,实现类实现接口方法与重写在概念上的区别是:
1)重写是在有继承关系的两个类之间,实现类实现接口方法是在子类/实现类与接口之间。
2)接口中的方法体为空方法体,但重写里父类中的方法体不是空方法体。
方法重写/重写的定义:又叫覆盖/override,是指子类可以继承父类的对象方法/实例化方法/非静态方法,在继承后,重复提供该方法[但方法内容不一致]。方法的重写是子类覆盖父类的对象方法。
调用子类的对象方法:用指向子类对象的引用调用该子类方法。i.e.
public static void main(String[] args) { Item i = new Item(); i.effect(); LifePotion lp =new LifePotion();//调用子类的对象方法 lp.effect();//LifePotion类为Item类的子类 }
隐藏
隐藏的定义:是指子类可以继承父类的类方法/静态方法,在继承后,重复提供该方法[但方法内容不一致] 。隐藏就是子类覆盖父类的类方法。
调用子类的对象方法:直接用子类名调用子类的类方法。i.e.
public static void main(String[] args) { Hero.battleWin();//直接用父类名调用父类的类方法 ADHero.battleWin();//ADHero为Hero的子类,该行含义是:直接用子类名调用子类隐藏父类类方法后的类方法 }
[b]实现类实现接口的方法 [/b]
接口的定义:接口就像是一种约定/承诺。举例来说:
1 public class ADHero extends Hero implements AD
是指ADHero这个类一定可以实现AD接口中的方法。
但是,为了看到实现AD接口内方法的效果,需要在ADHero类中重写这个对象方法。若AD中的方法为静态方法/类方法且为非空体方法,则在AD类的主方法中/实现类的主方法中想要调用AD类的方法必须用AD.方法名的形式,而调用相应的ADHero静态方法,则也必须用ADHero类的引用去调用该方法,或是ADHero类直接调用该ADHero静态方法。
实现类的对象方法的调用:若引用类型是实现类,且引用指向的对象类型也是实现类,则可以通过该引用调用实现类的对象方法。若不一致,请参考多态
可见,实现类实现接口方法与重写在概念上的区别是:
1)重写是在有继承关系的两个类之间,实现类实现接口方法是在子类/实现类与接口之间。
2)接口中的方法体为空方法体,但重写里父类中的方法体不是空方法体。
相关文章推荐
- 2018/01/07JAVA 基础 / 接口与继承:对接口与实现类、子类与父类的关系の理解
- java 子类继承父类成员变量的隐藏、实现方法的重写
- java基础学习之——子类重写(覆盖)父类的方法必须满足的条件
- 2018/01/07JAVA 基础 / 接口与继承:用引用调用对象方法的两种情况讨论
- 2018/01/08JAVA 基础 / 接口与继承:调用父类/子类的类方法、对象方法,访问父类的类属性、对象属性的方式汇总
- java中子类继承父类和实现接口有同名方法怎么处理
- java中父类有static修饰的方法其子类能继承吗?若子类也有该方法,是覆盖还是重写?
- 2018/01/08JAVA 基础 / 接口与继承/Java关键词:变量引用 super 调用父类对象方法/构造方法【或者访问父类对象属性】的方式归纳
- JAVA面向对象基础:继承、变量隐藏、方法重写、包、修饰符、this、super
- JAVA基础:子类、父类继承关系 静态块、非静态块、构造函数初始化顺序性、静态非静态方法覆盖
- 2018/01/08JAVA 基础 / 接口与继承:[Q]:若父类Hero提供了一个有参的构造方法,但是没有提供无参的构造方法。子类应该怎么处理?
- Java 子类继承父类方法的重写(或者覆盖,override)
- 子类对父类中虚方法的处理有重写(override)和覆盖(new)的区别
- JAVA基础-子类继承父类实例化对象过程
- Java子类继承(二):隐藏成员变量和方法重写的理解
- Java基础知识强化18:抽象类、接口的区别 和 抽象类可以不实现接口的全部方法
- java重载与重写的区别+重写父类equals方法的完美实现
- C#和Java 方法重写和覆盖隐藏的区别
- Java 基础数据类型 和 深度克隆对象的2种方法(实现Cloneable接口或者实现对象序列化)
- C#下 子类继承父类的虚方法后 使用override重写父类方法 和 不使用override重写有什么区别?