黑马程序员_函数的两个特性(重写和重载)
来源:互联网 发布:离线看书软件 编辑:程序博客网 时间:2024/06/16 20:52
------- android培训、java培训、期待与您交流! ----------
函数的两个特性(重写和重载)
第一部分
1、重载的概念
在同一个类中,允许存在一个以上的同名函数,只要它们的参数个数或者参数类型不同即可。换句话说重载和参数列表有关系,与返回值类型没有关系;2、重载的特点
与返回值类型无关,只看参数列表。3、重载的好处
方便于阅读,优化了程序设计。4、什么时候使用重载
当定义的功能相同,但是参与运算的位置内容不同,那么这时就要定义一个函数名称以表示其功能,方便阅读而通过参数列表的不同来区分多个同名函数;5、代码体现
class FunctionOverload{public static void main(String[] args) {//函数名相同但是参数列表不同;这就是重载add(5,7);add(3,5,54);System.out.println("Hello World!");}//获取两个整数的和public static int add(int a,int b){return a+b;}//获取三个整数的和public static int add(int a,int b,int c){return a+b+c;}}<strong></strong>
第二部分
1、背景
当子类中的方法名和父类中方法名是一样的时候,在主函数中创建子类对象,并调用父类的方法的时候,这是发现运算的结果是子类中的方法,父类中的方法并没有运行;
2、重写的概念
当子类出现和父类一模一样的函数时,子类中的对象调用该函数,会运行子类函数的内容,如同父类的函数被覆盖一样,这种情况就是函数的另一个特性:重写又成为覆盖;
3、覆盖的应用
当子类继承父类,沿袭了父类的功能,到子类中,但是子类虽具备该功能,但是功能的内容却和父类不一致,这时就没有必要定义新功能,而是使用覆盖特性,保留父类的功能定义,并重写功能内容。4、覆盖的特点
沿袭父类内容,定义子类特有内容;
5、覆盖功能的好处
5.1、有利于功能扩展;
5.2、在子类覆盖方法中,继续使用被覆盖的方法可以通过super.函数名获取。
5.3、父类中的私有方法不可以被覆盖。6、覆盖的注意事项
6.1、子类覆盖父类时,必须保证子类权限大于等于父类权限,才可以覆盖,否则编译失败。6.2、静态只能覆盖静态,静态不能覆盖非静态,原因是静态在内存中是先加载的,而非静态是后加载进内存的;7、代码体现
class Fu{void show(){System.out.println("show fu");}void speak(){System.out.println("vb");}}//子类继承父类,通过覆盖后子类中就有了两个方法;class Zi extends Fu{//子类和父类speak的功能是相同的void speak(){System.out.println("java");}void show(){System.out.println("show zi");}}class ExtendsDemo3 {public static void main(String[] args) {//建立子类对象,调用父类方法;Zi z = new Zi();z.show();z.speak();}}<strong></strong>
第三部分
重载和重写的区别
重载:只看同名函数的参数列表;重写:子父类方法要一模一样,包括返回值类型;
第四部分
我的总结
1、重写是函数名相同,但是函数的参数列表不同,与返回值类型无关;2、重载是子类和父类中的方法相同,子类中的方法覆盖父类中的方法,沿袭父类功能到子类中,在主函数中建立子类对象,调用父类方法;3、在进行复写是时候,必须保证子类的修饰符权限要大于父类的修饰符权限,才能够复写;4、静态只能覆盖静态,静态不能覆盖非静态;
0 1
- 黑马程序员_函数的两个特性(重写和重载)
- 黑马程序员_函数重载与重写
- 黑马程序员_java入门_函数,重载,重写
- 黑马程序员_Java函数的重载与重写(覆盖)
- 黑马程序员_函数的应用和重载
- 黑马程序员_方法的重载与重写
- 黑马程序员 java中的函数重载和函数重写
- 黑马程序员_函数重载
- 黑马程序员—java学习心得之函数的重载和重写
- 黑马程序员_构造方法和构造方法的重载
- 函数的重载和重写
- 函数的重写和重载
- 黑马程序员_重载~
- 黑马程序员--函数的重载
- 黑马程序员--函数的理解和函数重载
- 黑马程序员--重载与重写
- 黑马程序员——可变参数和重载和重写
- C++和Java在 子类继承父类时,两者成员函数重写和重载的特性
- ccccccccc
- => 运算符(C# 参考)
- 数据库 分布式系统的事务处理
- openfire+spark+smack实现即时通讯
- 智能家居通信协议已够乱,三星、Nest、ARM你们加个毛“线”(Thread)呀
- 黑马程序员_函数的两个特性(重写和重载)
- eclipse + tomcat
- 设计模式C++实现(10)——桥接模式
- Eclipse 关联中文 api
- Dynamic Parallelism
- url中参数中传递"?"的问题
- ibatis批量插入
- 哈希—— POJ 3349 Snowflake Snow Snowflakes
- java 连接数据库(oracle)之加载驱动包