韩顺平循序渐进学java 第10.11讲 继承.重载.覆盖
10.1 继承-四大特征之三
10.1.1 概念
继承可以解决代码复用,让编程更加接近人类思维。当多个类存在相同的属性(变量)和方法时,可以从这些类中抽象出父类(比如刚才的Student),在父类中定义这些相同的属性和方法,所有的子类不需要重新定义这些属性和方法,只需要通过extends语句来声明继承父类:
class 子类 extends 父类
这样,子类就会自动拥有父类的定义的属性和方法。
10.1.2 注意
注意:父类的public修饰符的属性和方法,protected修饰符的属性和方法,默认修饰符的属性和方法被子类继承了,但是父类的private修饰符的属性和方法不能被子类继承。
10.1.3 说明
1、子类最多只能继承一个父类(指直接继承);
2、Java中所有类都是Object类的子类;
3、JDK6中有202个包,3777个类、接口、异常、枚举、注释和错误;
4、在做开发时,强烈建议多查看jdk帮助文档;
5、在使用类时,实在不知道怎么办,google之。
10.2 方法重载(overload)
10.2.1 引出问题
编写一个类,编写方法可以接收两个整数,返回两个数中较大的数。
问题1:如果要求可以接收两个float型的数,返回较大数?
问题2:如果要求可以接收三个int型的数,返回较大数?
10.2.2 概念
方法重载就是类的一种功能的多种实现方式,到底采用哪种方式,取决于调用者给出的参数。
10.2.3 注意事项
1、方法名相同;
2、方法的参数类型、个数、顺序至少有一项不同;
3、只是方法返回类型不一样,不能构成重载;
4、只是方法修饰符不一样,也不能构成重载。
10.3 方法覆盖(override)
10.3.1 引出问题
子类可以继承父类的属性和方法,这样可以提高代码的复用性。假设要求大家些三个类猫、狗、猪,这三个都是动物,动物必然存在相同的特点。首先我们根据类的抽象特征,将它们的相同点提取出来,形成一个父类Animal,然后继承。
问题来了,怎么解决父类和子类方法的异同!
10.3.2 概念
方法覆盖就是子类有一个方法,和父类的某个方法的返回类型、名称、参数一样,那么就说子类的方法覆盖了父类的那个方法。
10.3.3 注意事项
1、子类的方法的返回类型、方法名称、参数要和父类方法的完全一样。
2、子类方法不能缩小父类方法的访问权限。
方法重载代码演示:
1 /**日期:2016-03-04 2 * 功能:方法重载的演示 3 */ 4 public class Practice1 5 { 6 public static void main(String []args) 7 { 8 Abc abc1=new Abc(); 9 System.out.println(abc1.getMax(5,4)); 10 } 11 } 12 13 class Abc 14 { 15 public int getMax(int a,int b) 16 { 17 if(a>b) 18 { 19 return a; 20 }else 21 { 22 return b; 23 } 24 } 25 public float getMax(float a,int b) //参数的类型不同 26 { 27 if(a>b) 28 { 29 return a; 30 }else 31 { 32 return b; 33 } 34 } 35 }
方法覆盖代码演示:
1 /**日期:2016-03-04 2 * 功能:方法覆盖的演示 3 */ 4 public class Practice2 5 { 6 public static void main(String []args) 7 { 8 //普通方法如下: 9 Cats cat=new Cats(); 10 cat.cry(); 11 Dogs dog=new Dogs(); 12 dog.cry(); 13 //多态方法如下: 14 Animals an=new Cats(); //这里也体现了多态 15 an.cry(); //这里也体现了多态 16 an=new Dogs(); 17 an.cry(); //这里体现出多态的优势,就是可以用Animals实例化一次, 18 //多次调用Animals的子类;如果不用多态,用到狗时要实例化个狗, 19 //用到猫时要实例化个猫,如果子类非常多的时候会非常麻烦。 20 } 21 } 22 23 class Animals 24 { 25 public void cry() 26 { 27 System.out.println("不知道什么动物叫!"); 28 } 29 } 30 31 class Cats extends Animals 32 { 33 public void cry() 34 { 35 System.out.println("喵喵叫!"); 36 } 37 } 38 39 class Dogs extends Animals 40 { 41 public void cry() 42 { 43 System.out.println("汪汪叫!"); 44 } 45 }
运行结果:
1 喵喵叫! 2 汪汪叫! 3 喵喵叫! 4 汪汪叫!
转载于:https://www.cnblogs.com/PistonType/p/5243873.html
韩顺平循序渐进学java 第10.11讲 继承.重载.覆盖相关推荐
- 网沙(爱玩啥)韩顺平.循序渐进学.java.从入门到精通系列视频分享
网沙(爱玩啥)韩顺平.循序渐进学.java.从入门到精通系列视频分享 韩顺平.循序渐进学.java.从入门到精通.第0讲-开山篇 韩顺平.循序渐进学.java.从入门到精通.第1讲-内容介绍.项 ...
- 韩顺平循序渐进学java 第21.22.23.24讲 集合
21.1 引出问题 一个问题? 前面我们学习了数组,充分体会到数组的优越性,就是可以存储同一类型的数据,但是我们假设有这样的需求,大家看看如何解决? 请做一个公司职员薪水管理系统,要求完成如下功能: ...
- 韩顺平循序渐进学java 第19讲 多维数组
19.1 二维数组 高维数组在工作中用到的不多,所以只介绍二维数组. 1.定义 语法:类型 数组名[][]=new 类型[大小][大小] 比如:int a[][]=new int[2][3] 2.分析 ...
- 韩顺平循序渐进学java 第12讲 多态
12.1 多态-四大特征之四 12.1.1 概念 所谓多态,就是指一个引用(类型)在不同情况下的多种状态. 可以这样理解:多态是指通过指向父类的指针,来调用在不同子类中实现的方法. 12.1.2 注意 ...
- 韩顺平循序渐进学java 第13讲 抽象类.接口
13.1抽象类 13.1.1 概念 当父类的一些方法不能确定时,可以用abstract关键字来修饰该方法,称为抽象方法,用abstract来修饰该类,称为抽象类. 13.1.2 抽象类-深入讨论 抽象 ...
- 【循序渐进学Python】面向对象知多少——继承
[循序渐进学Python]面向对象知多少--继承 面向对象的编程带来的主要好处之一是代码的重用,实现这种重用的方法之一是通过继承机制,那么今天我们来学习面向对象的第二大特征--继承. 继承 什么是继承 ...
- osx java 6_OSX 10.11 java 6不兼容怎么办?OSX 10.11 java 6不兼容解决办法
OSX 10.11 java 6不兼容怎么办?有很多用户在使用最新的OSX 10.11系统时会发现java SE 6不兼容的问题,其实要解决 这个问题比较简单,用户需要下载安装最新的Java SE 8 ...
- 零基础学Java的10个方法
2019独角兽企业重金招聘Python工程师标准>>> 版权声明:本文为北京尚学堂原创文章,未经允许不得转载. 零基础学Java只要方法得当,依然有机会学习好Java编程. 但作为 ...
- 从零学Java(29)之方法重载
作者简介 作者名:编程界明世隐 简介:CSDN博客专家,从事软件开发多年,精通Java.JavaScript,博主也是从零开始一步步把学习成长.深知学习和积累的重要性,喜欢跟广大ADC一起打野升级,欢 ...
最新文章
- 再见Python!Yann LeCun警告:深度学习需要新编程语言
- 空洞卷积(Dilated Convolution):有之以为利,无之以为用
- Centos 7 下 Corosync + Pacemaker + DRBD + psc + crmsh 实现 mysql 服务高可用
- 浅谈linux字符设备注册
- 检查 Linux 服务器性能
- 移动发布手机病毒警示信息 发现六种新型病毒
- 明显调用的表达式前的括号必须具有函数类型_Chisel(二) Scala语法 变量与函数...
- window系统服务器,远程连接mysql数据库。
- c++11 实现半同步半异步线程池
- jQuery 2.0.3 源码分析Sizzle引擎 - 编译函数(大篇幅)
- 机器学习——下采样(under-sampling)
- intouch负值显示0_InTouch常见问题
- html5毕业设计程序,网页毕业设计制作流程
- 分享一个xshell7的绿色版
- h2ouve下载 insyde_一种基于InsydeBIOS的BIOS更改方法及系统与流程
- A类业余电台操作证书考试内容提要
- 五个海盗如何分100个金币呢?
- uiautomatorviewer 双击闪退问题
- 51单片机学习笔记(清翔版)(19)——串口通信
- kd树搜索(k邻近法)