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 ...
随机推荐
- 3-Dom
HTML DOM 对象DOM DocumentDOM ElementDOM AttributeDOM Event Document对象 每个载入浏览器的 HTML 文档都会成为 Document 对象 ...
- 观察者模式 C++11
#include <functional> #include <vector> #include <algorithm> #include <iostream ...
- C#使用SqlDataAdapter 实现数据的批量插入和更新
近日由于项目要求在需要实现中型数据的批量插入和更新,晚上无聊,在网上看到看到这样的一个实现方法,特摘抄过来,以便以后可能用到参考. 一.数据的插入 DateTime begin = DateTime. ...
- C# 泛型 Func<object, string, bool> filter
Func<object, string, bool>是泛型,你可以先把他看成一个普通类型,比如stringpublic class Func{ } // 自定义个普通类. Func fil ...
- Application.DoEvents()的作用
记得第一次使用Application.DoEvents()是为了在加载大量数据时能够有一个数据加载的提示,不至于系统出现假死的现象,当时也没有深入的去研究他的原理是怎样的,结果在很多地方都用上了App ...
- 数据库及SQL优化
一.数据库结构的设计 如果不能设计一个合理的数据库模型,不仅会增加客户端和服务器段程序的编程和维护的难度,而且将会影响系统实际运行的性能.所以,在一个系统开始实施之前,完备的数据库模型的设计是必须的. ...
- 淘淘商城_day06_课堂笔记
今日大纲 实现单点登录系统 基于单点登录系统实现,用户的注册和登录 商品数据同步问题 问题 后台系统中将商品修改,前台系统没有进行数据的同步,导致前端系统不能够实时显示最新的数据. 解决 后台系统中商 ...
- Vue - 使用命令行搭建单页面应用
使用命令行搭建单页面应用 我们来看一下最后完成的效果: 大纲 1. 下载 node, git, npm 2. 使用命令行安装一个项目 一. 下载工具 node , git 的下载大家可以去官网自行下 ...
- CSS3秘笈复习:第一章&第二章&第三章
第一章: 1.<cite>标签不仅可以将网页设置为斜体,还能给标题做上标记,使它便于被搜索引擎搜索到. 第二章: 1.import指令链接样式表: CSS本身有一种添加外部样式的方法:@i ...
- JavaScript的内置对象(Date日期+string字符串)基础语法总结
1.Date日期对象可以储存任意一个日期,并且可以精确到毫秒数(1/1000 秒). 1)定义一个时间对象 : var Udate=new Date(); //注意:使用关键字new,Date()的首 ...