Java--重载与重写
父类(Parent):
public class Parent { public String name = "parent 父类属性";
public void say(){
System.out.println("parent say被调用"+this.getClass());
}
}
子类(Child):
public class Child extends Parent { /**
* 属性只能被隐藏,不能被覆盖
*/
public String name = "child 子类属性"; public static void main(String[] args) {
Child c = new Child();//普通对象
c.say(); Parent p = new Child();//向上转型
p.say(); /**
* 当子类Child和父类Parent都有name属性时:
* c.name = child 子类属性
* p.name = parent 父类属性
* 当子类Child没有name属性,父类有该属性时:
* c.name = parent 父类属性
* p.name = parent 父类属性
*/
System.out.println("c.name = " + c.name);//c.name = child
System.out.println("p.name = " + p.name);//p.name = parent } /**
* 重写父类方法
*/
public void say(){//子类方法一
System.out.println("child say被调用"+this.getClass());
} /**
* 重载--子类方法一
* 当子类方法一不存在时, 子类方法二看起来就象是程序员有意覆盖 say() 的功能,
* 但对方法的类型定义却稍微有些不确切。
* 然而,编译器此时假定的是程序员有意进行“过载” ,而非“覆盖”。
*/
public void say(int s){//子类方法二
System.out.println("child say被调用"+this.getClass());
} /***
* 方法签名由方法名称和一个参数列表(方法的参数的顺序和类型)组成,
* 当定义两种或多种具有相同名称的方法时,就称作重载。
* 即重载时相同名称成员的参数列表是不相同的(参数顺序和类型)。
* 以下say2三个方法是重载的体现
*/
public void say2(){//子类方法三
System.out.println("child say2被调用");
} public void say2(int a){//子类方法四
System.out.println("child say2被调用");
} public int say2(String a){//子类方法五
System.out.println("child say2被调用");
return 0;
}
}
继承:
1.如果一个类里包含了一个或多个抽象方法,类就必须指定成abstract (抽象)。否则,编译器会向我们报告一条出错消息。(注:是编译错误非运行错误)
2.如果从一个抽象类继承,而且想生成新类型的一个对象,就必须为基础类中的所有抽象方法提供方法定义。(即普通类继承抽象类时必须实现抽象类的抽象方法;如果不这样做,则衍生类也会是抽象的,而且编译器会强迫我们用 abstract 关键字标志那个类的“抽象”本质。)
3.即使不包括任何 abstract 方法,亦可将一个类声明成“抽象类”。
Java--重载与重写的更多相关文章
- java 重载、重写、构造函数详解
方法重写 1.重写只能出现在继承关系之中.当一个类继承它的父类方法时,都有机会重写该父类的方法.一个特例是父类的方法被标识为final.重写的主要优点是能够定义某个子类型特有的行为. class An ...
- Java——重载和重写
前言 在程序设计中经常会遇到对对方法的重载或者重写,下面将介绍重载和重写. 重载(Overloade) 重载出现的原因 任何程序设计语言都具备的一项重要特性就是对名字的运用.当创建一个对象时,就给对象 ...
- java 重载、重写、重构的区别
1.重载 构造函数是一种特殊的函数,使用构造函数的目的是用来在对象实例化时初始化对象的成员变量.由于构造函数名字必须与类名一致,我们想用不同的方式实例化对象时,必须允许不同的构造方法同时存在,这就用到 ...
- 深入理解Java重载与重写
我们都知道Java有三大宝,分别是:多态.封装.继承.其中多态主要体现就是重写与重载(有些人认为重载根本不属于多态)两种方式,那么今天就结合研读过JVM之后自己的理解来聊聊重载与重写的VM内部是怎么实 ...
- 一句话学Java——Java重载和重写
概念:重载是指两个不同的函数有相同的名称,可以是在本类之中的函数之间的重载,也可以是子类和父类的函数之间的函数重载. 重写:只能是子类重写父类的函数.这是多态的基础. 重写的规则: 参数:重写 ...
- 漫谈java重载与重写
重载(Overloading):为了让方法名相同而形参不同的构造方法同时存在,让类以统一的方式处理不同类型数据的一种手段 重写(Overriding):导出类对继承自基类的方法做出一定的修改,又称方法 ...
- java重载和重写的区别
一.重载(Overloading) (1) 方法重载是让类以统一的方式处理不同类型数据的一种手段.多个同名函数同时存在,具有不同的参数个数/类型. 重载Overloading是一个类中多态性的一种表现 ...
- java 重载与重写 【转】
首先我们来讲讲:重载(Overloading) (1) 方法重载是让类以统一的方式处理不同类型数据的一种手段.多个同名函数同时存在,具有不同的参数个数/类型. 重载Overloading是一个类中多态 ...
- java重载和重写
重载(Overloading) (1) 方法重载是让类以统一的方式处理不同类型数据的一种手段.多个同名函数同时存在,具有不同的参数个数/类型. 重载Overloading是一个类中多态性的一种表现. ...
- JAVA构造器,重载与重写
1. java构造器 构造器也叫构造方法(constructor), 用于对象初始化. 构造器是一个创建对象时被自动创建的特殊方法,目的是对象的初始化. 构造器 的名称与类的名称一致. JAVA通过n ...
随机推荐
- AngularJs中,如何在父元素中调用子元素为自定义Directive中定义的函数?
最近一段时间准备使用AngularJs中的自定义Directive重构一下代码. 在这里说明一下,把自定义控件封装成Directive并不一定是要复用,而是要让代码结构更加清晰.就好像你将一个长方法拆 ...
- GrowingIO 2016 数据驱动增长大会—— 一起做增长英雄
GrowingIO 2016 数据驱动增长大会,首次聚齐了增长黑客之父 Sean Ellis .世界前十位前沿数据科学家张溪梦等数十位中美顶尖增长实践者: 链家.点融网.Camera360.量化派.北 ...
- 特性(Attributes)
用以将元数据或声明信息与代码(程序集.类型.方法.属性等)相关联.特性与程序实体相关联后,即可在运行时用反射技术查询特性. 例如,在一个方法前标注[Obsolete]特性,则调用该方法时VS则会提示该 ...
- 一篇顺手的Ubuntu+caffe配置笔记
主要参考: https://github.com/lbzhang/dl-setup http://ouxinyu.github.io/Blogs/20151108001.html http://www ...
- spring 加载多个资源文件
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.Prop ...
- 洛谷-求同构数的个数-NOIP2013提高组复赛
题目描述 Description 所谓同构数是指这样的数,即它出现在它的平方数的右端.例如,5的平方是25 (即5×5=25),5是25右端的数,那么5就是同构数.又如,25的平方是625(即25×2 ...
- Django ORM操作
ORM 常用操作进阶操作 #!/usr/bin/env python #_*_ coding:utf8 _*_ from __future__ import unicode_literals from ...
- underscore.js中的节流函数debounce及trottle
函数节流 throttle and debounce的相关总结及想法 一开始函数节流的使用场景是:放止一个按钮多次点击多次触发一个功能函数,所以做了一个clearTimeout setTimeou ...
- linux环境vnc部署过程详解
vnc服务端机器地址:10.165.38.68 vnc客户端机器地址:本机(windows机器) vnc客户端包:vnc_82537_82537.rar (百度云盘下载地址:http://pan.ba ...
- 你我公益模式系统APP开发
你我公益模式系统APP开发(微or电 158.1500.1390 小凡团队)你我公益系统开发,你我公益系统模式定制,你我公益系统开发软件,你我公益平台系统开发. 互联网世界无边无界,互联网创业者应敢于 ...