《java入门第一季》之面向对象(方法重写问题)
方法重载的引入:根据一个案例:
/*
继承中成员方法的关系:
A:子类中的方法和父类中的方法声明不一样,这个太简单。
B:子类中的方法和父类中的方法声明一样,这个该怎么玩呢?
通过子类对象调用方法:
a:(先)找子类中,看有没有这个方法,有就使用
b:(再)看父类中,有没有这个方法,有就使用
c:如果没有就报错。
*/
class Father {
public void show() {
System.out.println("show Father");
}
} class Son extends Father {
public void method() {//子类特有的东西
System.out.println("method Son");
} public void show() {//子类和父类中的方法一样,其实属于方法重写。在这里引入了这个概念
System.out.println("show Son");
}//如果把son中的show()屏蔽掉,子类对象调用show(),这个时候调用的就是父类中的show()*/子类对象既可以调用本类还可以调用父类
} class ExtendsDemo8 {
public static void main(String[] args) {
//创建对象
Son s = new Son();
s.show();
s.method();
//s.fucntion(); //找不到符号
}
}
方法重写概述:
/*
方法重写:子类中出现了和父类中方法声明一模一样的方法。 回顾方法重载:
本类中出现的方法名一样,参数列表不同的方法。与返回值无关。 子类对象调用方法的时候:
(先)找子类本身,子类没有的话(再找)父类。 方法重写的应用:
当子类需要父类的(功能),而(功能主体)子类有自己特有内容时,可以重写父类中的方法。
这样,即沿袭了父类的功能,又在这个功能里定义了子类特有的内容。*/
class Phone {
public void call(String name) {//name由子类call方法中传递过来
System.out.println("给"+name+"打电话");
}
} class NewPhone extends Phone{
public void call(String name) {
//System.out.println("给"+name+"打电话");
super.call(name);//super调用父类的内容沿用原来手机打电话的功能,super类似父类的对象,在子类中指代父类对象的引用
System.out.println("可以听天气预报了");//方法重写,新手机特有的功能
}
} class ExtendsDemo9 {
public static void main(String[] args) {
NewPhone np = new NewPhone();
np.call("林青霞");
}
}
方法重写的注意事项:
/*
方法重写的注意事项
A:父类中(私有方法不能被重写)
因为父类(私有方法子类根本就无法继承)
B:子类重写父类方法时,访问权限不能更低
最好就一致
C:父类静态方法,子类也必须通过静态方法进行重写
其实这个算不上方法重写,但是现象确实如此,至于为什么算不上方法重写,多态中会介绍 子类重写父类方法的时候,最好声明一模一样。
*/
class Father {
//private void show() {} /*
public void show() {
System.out.println("show Father");
}
*/ public void show() {
System.out.println("show Father");
} public static void daolong() { } public void method() {
System.out.println("method father");
} } class Son extends Father {
//private void show() {} /*
public void show() {
System.out.println("show Son");
}*/ public void show() {//show()方法重写
System.out.println("show Son");
} public static void daolong() {
}//父类是静态方法,子类重写静态方法 public void method() {
System.out.println("method Son");
}//method()方法重写
} class ExtendsDemo10 {
public static void main(String[] args) {
Son s = new Son();
s.show();
s.method();
}
}
《java入门第一季》之面向对象(方法重写问题)的更多相关文章
- JAVA入门第一季(mooc-笔记)
笔记相关信息 /** * @subject <学习与创业>作业1 * @author 信管1142班 201411671210 赖俊杰 * @className <JAVA入门第一季 ...
- Java入门第一季——从此投身Java??
找工作告一段落. 最后的工作呢,和java紧密相关,也是阴差阳错,不过都是软件开发,都好了,不过以后侧重点肯定是在java这边,php有机会还是一直学下去的,那么美的说~ Java开发第一季 一.简 ...
- 《java入门第一季》之面向对象(谈谈接口)
软件中有接口,这里的接口与硬件中的接口还是有很大区别的. 这里介绍接口不考虑JDK8的新特性(JDK8开始接口里面可以有非抽象方法了,介绍JDK8新特性可能要到整个第一季写完吧!) 还是直接进入接口的 ...
- 《java入门第一季》之面向对象(重头戏多态)
接下来介绍java第三大特性--多态性 /* 多态:同一个对象(事物),在不同时刻体现出来的不同状态. 举例: 猫是猫,猫是动物. 水(液体,固体,气态). 多态的前提: A:要有继承关系. B:要有 ...
- 《java入门第一季》之面向对象(final关键字)
/* final可以修饰类,方法,变量 特点: final(可以修饰类),该(类)(不能被继承).一旦修饰了一个类,这个类就不能被继承了! final以修饰方法,该方法可以被继承但是不能被重写.(覆盖 ...
- 慕课网-Java入门第一季-7-2 Java 中无参无返回值方法的使用
来源:http://www.imooc.com/code/1578 如果方法不包含参数,且没有返回值,我们称为无参无返回值的方法. 方法的使用分两步: 第一步,定义方法 例如:下面代码定义了一个方法名 ...
- 《java入门第一季》之面向对象接口面试题
首先,(1)叙述接口的成员特点: /* 接口成员特点 成员变量:只能是常量,默认都是常量,并且是静态的. 默认修饰符:public static final 建议:自己手动给出类似:public st ...
- 《java入门第一季》之面向对象(抽象类其实不抽象)
上一篇(http://blog.csdn.net/qq_32059827/article/details/51334198)对抽象类做了一些描述,这一篇根据两个案例加深一下印象.会觉得抽象类其实不抽象 ...
- 《java入门第一季》之面向对象面试题
1:方法重写和方法重载的区别?方法重载能改变返回值类型吗? 方法重写: 在子类中,出现和父类中一模一样的方法声明的现象. 方法重载: 同一个类中,出现的方法名相同,参数列表不同的现象. 方法重载能改变 ...
随机推荐
- Android开发学习之路--Android Studio cmake编译ffmpeg
最新的android studio2.2引入了cmake可以很好地实现ndk的编写.这里使用最新的方式,对于以前的android下的ndk编译什么的可以参考之前的文章:Android开发学习之路– ...
- Android5.0特性ToolBar
>Toolbar是什么?大概说一下它的官方介绍.Toolbar是应用的内容的标准工具栏,`可以说是Actionbar的升级版`,两者不是独立关系,要使用Toolbar还是得跟ActionBar扯 ...
- Android图表库MPAndroidChart(七)—饼状图可以再简单一点
Android图表库MPAndroidChart(七)-饼状图可以再简单一点 接上文,今天实现的是用的很多的,作用在统计上的饼状图,我们看下今天的效果 这个效果,我们实现,和之前一样的套路,我先来说下 ...
- win 8.1 64位彻底删除王码98
安全模式 C:\Windows\SysWOW64\ 删除:winwb98.IME和winwb98.MB 注册表: 找到王码五笔相关的项.一般在最下面的以字母E开头的文件夹.全部删除. HKEY_LOC ...
- scheme深拷贝和浅拷贝探索
> (define a '(1 2 3)) > (define b (cons a '())) > b (( )) > (set-car! (car b) ) > b ( ...
- 非阻塞IO服务器模型
我们来考虑一个情形,你跟千千万万个玩家是魔兽世界的超级粉丝,每周末准时组团打boss.每当周末游戏服务器就亚历山大,因为起码几十万用户同时在线.如果用我们的多线程阻塞服务器作为游戏服务器是否可行呢?先 ...
- Hive-RCFile文件存储格式
在新建Hive表时,可以使用stored as rcfile来指定hive文件的存储方式为RCFile. 一.RCFile文件结构 下图是一个RCFile的文件结构形式. 从上图可以看出: 1)一张表 ...
- Windows安装和使用fftw
FFTW是一个比较快的.非常出名的一个DFT的开源库. 本文探索安装和配置FFTW,用Visual Studio 2008来使用fftw. 第一步:下载最新的fftw库 这一步很简单,只要在googl ...
- iOS日历中给一个事件添加多个提醒
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) iOS自带的日历应用中,我们最多只能给一个事件设置2个提醒,但 ...
- kindeditor用法简单介绍
最近做毕业设计用了一个叫做kindeditor的文本编辑工具,相信很多人都用过,这货和fckeditor差不多,个人感觉这个的皮肤更好看,而且对中文的支持更好,没那么容易出现中文乱码问题.下次记录一下 ...