《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:方法重写和方法重载的区别?方法重载能改变返回值类型吗? 方法重写: 在子类中,出现和父类中一模一样的方法声明的现象. 方法重载: 同一个类中,出现的方法名相同,参数列表不同的现象. 方法重载能改变 ...
随机推荐
- [Python监控]psutil模块简单使用
安装很简单 pip install psutil 官网地址为 https://pythonhosted.org/psutil/ (文档上有详细的api) github地址为 https://githu ...
- 使用Apache的ab进行压力测试
概述 ab是apache自带的压力测试工具,当安装完apache的时候,就可以在bin下面找到ab然后进行apache 负载压力测试. 后台测试开发中,常用的压力测试服务,php一般选择xampp,下 ...
- cenos安装jdk
安装方式:手动安装 软件:jdk-7u79-linux-x64.tar.gz 官网下载地址:进行下载. 下载完成之后上传到我们的服务器,我使用的是cenos6.5阿里云系统.securecrt工具上传 ...
- UNIX网络编程——tcp流协议产生的粘包问题和解决方案
我们在前面曾经说过,发送端可以是一K一K地发送数据,而接收端的应用程序可以两K两K地提走数据,当然也有可能一次提走3K或6K数据,或者一次只提走几个字节的数据,也就是说,应用程序所看到的数据是一个整体 ...
- iOS的settings bundle中开关按钮(Toggle Switch)取不到值的问题
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 在Xcode7.2中设置App的settings bundle ...
- 剑指Offer——网易校招内推笔试题+模拟题知识点总结
剑指Offer--网易校招内推笔试题+模拟题知识点总结 前言 2016.8.2 19:00网易校招内推笔试开始进行.前天晚上利用大约1小时时间完成了测评(这个必须做,关切到你能否参与面试).上午利用2 ...
- 【一天一道Leetcode】#203.Remove Linked List Elements
一天一道LeetCode 本系列文章已全部上传至我的github,地址:ZeeCoder's Github 欢迎大家关注我的新浪微博,我的新浪微博 我的个人博客已创建,欢迎大家持续关注! 一天一道le ...
- Android的oom详解
Android的oom原因 1.资源对象没关闭造成的内存泄露,try catch finally中将资源回收放到finally语句可以有效避免OOM.资源性对象比如: 1-1,Cursor 1-2,调 ...
- HDU2612---(两次BFS)
Description Pass a year learning in Hangzhou, yifenfei arrival hometown Ningbo at finally. Leave Nin ...
- 自定义android 4.0以上的对话框风格
做个笔记,这里是Dialog的风格,如果是用AlertDialog创建的,不能直接用.在styles.xml的写法: <style name="DialogWindowTitle&qu ...