首先我们要明白什么是重写和重载

重写(override):子类方法覆盖了父类的方法。    (类与类之间继承的关系)

例:父类代码

public class Deng {

	public void QiDong(){
System.out.println("亮了");
}
public void GuanBi(){
System.out.println("灭了");
}
}

子类代码

public class DengPao extends Deng {

	public void QiDong(){

		System.out.println("灯泡亮了");
}
public void GuanBi(){
System.out.println("灯泡灭了");
} }

如上,子类中的方法覆盖了父类的方法

重载(overload):在一个类中,方法可以重名,方法中的参数不同或数量不同,就不会冲突,即为重载(发生在一个类中的)

public class Fu {

	protected  String XingMing="小明";

	public void Shuo(){                                                                //函数名字一致,但是这个没有参数
System.out.println(this.XingMing+",你要好好学习");
}
public void Shuo(String a){ //这个有参数 这样就形成了重载
this.XingMing=a;
System.out.println(this.XingMing+",你要好好天天向上");
}

 在main函数中,我们来调用

public class Test {

	public static void main(String[] args) {
Fu fu=new Fu();
fu.Shuo();
fu.Shuo("小华");
}

  最后的结果如下

多态:对象执行某个行为方法式表现出不同的形态。

多态分为两种:

动态多态,通过重写实现;

静态多态,通过重载实现;

动态多态一般通过父类的引用,指向子类的实例来实现。实例调用的时候,调的是子类的方法。

这句话怎么理解呢?

Deng dg=new DengGuan();

就是这样的一个例子  

 多态的例子

USB接口,插入鼠标和U盘,模拟提示运行,拔出模拟提示拔出

为了方便查看, 我把几段代码集合到了一起

package com.itnba.maya.usb;

public class USB {                                      //父类
public void QiDong(){ }
public void TingZhi(){ }
} public class UPan extends USB { //子类
public void QiDong(){
System.out.println("u盘启动了");
}
public void TingZhi(){
System.out.println("u盘停止运行了");
}
} public class ShuBiao extends USB { //子类
public void QiDong(){
System.out.println("鼠标驱动了");
}
public void TingZhi(){
System.out.println("鼠标停止驱动");
}
} public class DianNao { //统一参数类型
public void ChaRu(USB u){
u.QiDong();
}
public void BaChu(USB u){
u.TingZhi();
} } public class Test { //测试 public static void main(String[] args) {
DianNao n=new DianNao(); USB pan=new UPan();
USB shu=new ShuBiao();
n.ChaRu(pan);
n.BaChu(pan); n.ChaRu(shu);
n.BaChu(shu); } }

  

 最后输出的结果

Java中,方法的重写、重载的区别,以及多态的实例的更多相关文章

  1. Java中方法的重写与成员变量的隐藏

    这篇文章讨论了Java面向对象概念中一个基本的概念–Field Hiding(隐藏成员变量) 在讨论这个问题之前,我们看一段特别特别简单的代码,请问一下方法的数据结果是什么? public class ...

  2. java 中方法的重写

    方法的重写 1.在子类中可以根据需要对从基类中继承来的方法进行重写. 2.方法重写必须要和被重写方法具有相同方法名称.参数列表和返回类型. 3.重写方法不能使用比被重写方法更严格的访问权限 4.注意与 ...

  3. 《Java中方法的重写》

    //方法的重写 /* 注意:方法的重写要遵循“两同两小一大”规则 “两同”即方法名相同.形参列表相同: “两小”(1)指的是子类方法返回值类型比父类方法的返回值类型更小或相等,[什么意思?] (2)子 ...

  4. Java中方法的重写

    ★★前提:方法的重写建立在继承关系上★★ 在Java程序中,类的继承关系可以产生一个子类,子类继承父类,它具备了父类所有的特征,继承了父类所有的方法和变量. 所谓方法的重写是指子类中的方法与父类中继承 ...

  5. Java中方法next()和nextLine()的区别

    原创 Java中Scanner类中的方法next()和nextLine()都是吸取输入台输入的字符,区别: next()不会吸取字符前/后的空格/Tab键,只吸取字符,开始吸取字符(字符前后不算)直到 ...

  6. java中方法的重写与重载的区别

    重载: 方法名相同,但是参数必须有区别(参数不同可以使类型不同,顺序不同,个数不同).前提: 同一个类中,方法名相同,参数列表不同的2个或多个方法构成方法的重载 参数列表不同指参数的类型,参数的个数, ...

  7. Java中方法重写和方法重载

     首先方法重写和方法重载是建立在Java的面向对象的继承和多态的特性基础上而出现的.至于面向对象的继承和多态的特性我就不在这里多说了.继承是指在一个父类的基础再创建一个子类,这样子类就拥有了父类的非私 ...

  8. Java中==、equals、hashcode的区别与重写equals以及hashcode方法实例(转)

    Java中==.equals.hashcode的区别与重写equals以及hashcode方法实例  原文地址:http://www.cnblogs.com/luankun0214/p/4421770 ...

  9. java多态性方法的重写Overriding和重载Overloading详解

    java多态性方法的重写Overriding和重载Overloading详解 方法的重写Overriding和重载Overloading是Java多态性的不同表现.重写Overriding是父类与子类 ...

  10. Java:面向对象(继承,方法的重写(overide),super,object类及object类中方法的重写,父子类代码块执行顺序)

    继承: 1.继承是对某一匹类的抽象,从而实现对现实世界更好的建模. 2.提高代码的复用性. 3.extends(扩展),子类是父类的扩展. 4.子类继承父类可以得到父类的全部属性和方法.(除了父类的构 ...

随机推荐

  1. CWR Mobile简介

    原创地址:http://www.cnblogs.com/jfzhu/p/4266671.html 转载请注明出处 (一)CWR公司背景 Dynamics CRM除了自己Out of Box对移动设备的 ...

  2. Swift 和 C# 的语法比较

    昨天看到Jacob Leverich 写了一篇文章 Swift is a lot like Scala 介绍Swift 和 Scala 的语法对比,从这篇文章的确可以看到Swift 的语法和 Scal ...

  3. JavaScript算法(冒泡排序、选择排序与插入排序)

    冒泡排序.选择排序与插入排序复杂度都是二次方级别的,放在一起说吧. 介绍一些学习这三个排序方法的比较好的资料.冒泡排序看<学习JavaScript数据结构与算法>介绍的冒泡排序,选择排序看 ...

  4. WebDriver--简单的元素操作

    以登录163邮箱为例,演示以下几个方法的使用 ①switch_to.frame() ②.clear() ③.send_keys() ④.click() ⑤switch_to_default_conte ...

  5. Content-Type List

    Content-Type List Description of Data Content Typical Filename Extensions MIME type/subtype       Te ...

  6. Leetcode-463 Island Perimeter

    #463. Island Perimeter You are given a map in form of a two-dimensional integer grid where 1 represe ...

  7. Constraint5:unique 约束和null

    unique约束使用unique index来限制列值的唯一性: 创建unique约束之后,column中允许插入null值,unique 约束将两个null值看作是相同的(即null=null为tr ...

  8. LINQ系列:Linq to Object元素操作符

    元素操作符从一个序列返回单个指定的元素. 1. DefaultIfEmpty DefaultIfEmpty操作符将一个空集合替换为包含默认的单个值的集合.在返回序列为空且又需要返回一些对象时,可以通过 ...

  9. Gridview里添加合计行

    ShowFooter="true" ; ; ; protected void gvIncomeYG_RowDataBound(object sender, GridViewRowE ...

  10. Jquery通过Ajax方式来提交Form表单

    今天刚好看到Jquery的ajax提交数据到服务器的方法,原文是: 保存数据到服务器,成功时显示信息. jQuery 代码: $.ajax({ type: "POST", url: ...