重载,继承,重写和多态的区别:
继承是子类获得父类的成员,重写是继承后重新实现父类的方法。重载是在一个类里一系列参数不同名字相同的方法。多态则是为了避免在父类里大量重载引起代码臃肿且难于维护。
网上看到一个有趣的说法是:继承是子类使用父类的方法,而多态则是父类使用子类的方法。
下面的例子包含了这四种实现:
class Triangle extends Shape {
public int getSides() {
return 3;
}}
class Rectangle extends Shape {
public int getSides(int i) {
return i;
}}
public class Shape {
public boolean isSharp(){
return true;
}
public int getSides(){
return 0 ;
}
public int getSides(Triangle tri){
return 3 ;
}
public int getSides(Rectangle rec){
return 4 ;
} public static void main(String[] args) {
Triangle tri = new Triangle();
System.out.println("Triangle is a type of sharp? " + tri.isSharp());
Shape shape = new Triangle();
System.out.println("My shape has " + shape.getSides() + " sides."); }
}
红色是重载,
绿色是重写,
蓝色是继承,
紫色是多态
注意Triangle类的方法是重写,而Rectangle类的方法是重载。
比较红色的和粉红的部分就可以发现多态对重载的优点:如果用重载,则在父类里要对应每一个子类都重载一个取得边数的方法;如果用多态,则父类只提供取得边数的接口,至于取得哪个形状的边数,怎样取得,在子类里各自实现(重写)。
分享到:
相关推荐
java 重载,继承,重写和多态的区别. 下面的例子包含了这四种实现
重载:用于在给定了参数列表和一组候选函数成员的情况下,选择一个最佳函数成员来实施调用。多态:c#的多态性主要体现在类的继承上:子类继承父类的时候,可能出现同名但方法定义不同的情况, 所以在子类中会将原方法...
java 重载,重写以及继承,多态的区别
[Java]重载,重写以及继承,多态的区
详细描述继承,多态的概念和应用,阐述重载和重写的区别
主要介绍了java中重载,继承,重写和多态的区别,需要的朋友可以参考下
主要介绍了Java中继承、多态、重载和重写介绍,需要的朋友可以参考下
super () 方法始终指向调用类的父类 调用父类构造方法 演示:示例 3 多态性 2-1 多态性是指¡°多种形式¡± 它使用不同的实例而执行不同操作 多态包括方法重写和方法重载 多态性 2-2 方法重载 2-1 方法重载 2-2 ...
重载与覆写/重写的区别 区别 重载 覆写 1 单词 OverLoading Override 2 概念 方法名称相同,参数的类型或个数不同 方法名称相同,参数的类型或个数相 同,返回值类型相同 3 范围 发生在一个类之中...
3.3 重载和重写;3.3 重载和重写;3.3.1 重载;3.3.1 重载;3.3.1 重载;3.3.2 重写;3.3.2 重写;3.3.2 重写;3.3.3 重写覆盖问题;3.3.4 学生实践练习;3.3.4 学生实践练习;3.4 多态;3.4 多态;3.4.1 多态应用;3.4.1 多态应用...
实现重载(overload)和重写(override) 调用中用到多态,向上转换,强制转换 所有被创建的类,都各自创建两个实现接口 最底层的类中创建内部类,并在外部类中调用内部类的方法
结合继承 重载 重写 多态等知识编写的代码
第三章 继承与多态 掌握封装的含义及用法 什么是继承? 继承有什么作用? 怎么写继承? 1.继承的概念及其用法 2.方法的重写及重载与其的区别 3.多态及其应用 4.super关键字 5.final关键字
java的多态机制的讲解,重写,重载,子类父类的继承 java多态的应用
overload:重载,编辑多态 三.多态(运行多态) 概念:父类引用子类实例,由于子类里面对父类的方法进行重写,父类引用在调用该方法的时候表现出的不同状态 条件: 1必须发生在集成下 2必须重写父类方法 3父类引用...
12.5.2为一个类重载new和delete 12.5.3为数组重载new和delete 12.5.4构造函数调用 12.5.5对象放置 12.6小结 12.7练习 第13章 继承和组合 13.1组合语法 13.2继承语法 13.3构造函数的初始化表达式表 13.3.1成员对象...
继承中的构造方法 继承中的类型转换 方法重载、重写 多态 static、final、abstract 接口 访问权限
方法的重载和重写都是实现多态的方式,前者实现的是编译时的多态性,而后者实现的是运行时的多态性。重载指的是一个类中具有多个功能相似的函数。重写是指子类继承了父类的方法并且覆盖了子类的方法。 方法重载的...
(四)——final、finally和finalize的区别 (五)——传了值还是传了引用(六)——字符串(String)杂谈 (七)——日期和时间的处理 (八)——聊聊基本类型(内置类型)(九)——继承、多态、重载和重写(十)...
(一)类的初始化顺序 (二)到底创建了几个String 对象? (三)变量(属性)的覆盖 (四)final、finally 和finalize 的区别 ...(九)继承、多态、重载和重写 (十)话说多线程 (十一)这些运算符你是否还记得?