java面向对象编程(六)--四大特征之继承、方法重载和方法覆盖
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java面向对象编程(六)--四大特征之继承、方法重载和方法覆盖,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2711字,纯文字阅读大概需要4分钟。
内容图文
一、继承
1.继承的概念
继承可以解决代码复用,让我们的编程更加靠近人类思维。当多个类存在相同的属性(变量)和方法时,可以从这些类中抽象出父类,在父类中定义这些相同的属性和方法,所有的子类不需要重新定义这些属性和方法,只需要通过extends语句来声明继承父类。语法如下:
class 子类 extends 父类
这样,子类就会自动拥有父类定义的某些属性和方法。另外,并不是父类的所有属性、方法都可以被子类继承。父类的public修饰符的属性和方法,protected修饰符的属性和方法,默认修饰符属性和方法能够被子类继承,private修饰符的属性和方法不能被子类继承。
2.案例:
// 功能:说明继承的重要性 package com.davperson;//包名publicclass Demo117 { publicstaticvoid main(String[] args) { Pupil p1=new Pupil(); p1.printName(); } } //将学生的共有属性提取,做一个父类class Stu{ //定义成员属性protectedint age; public String name; publicfloat fee; private String job;//私有将不被继承 //编程中,如果你不希望子类继承某个属性或方法 //则将其声明为private即可publicvoid printName(){ System.out.println("名字"+this.name); } } //小学生类class Pupil extends Stu{ //交学费publicvoid pay(float fee){ this.fee=fee; } } //幼儿class Pre extends Pupil{ //交学费publicvoid pay(float fee){ this.fee=fee*1.5f; } } //中学生类class MiddleStu extends Stu{ //交学费publicvoid pay(float fee){ this.fee=fee*0.8f; } } //大学生类class ColStu extends Stu{ //交学费publicvoid pay(float fee){ this.fee=fee*0.1f; } }
3.继承--注意事项
1、子类最多只能继承一个父类(指直接继承)
2、java所有类都是Object类的子类 (所有的子类都可以逐级继承,例:爷->父->子->孙)
3、JDK6中有202个包3777个类、接口、异常、枚举、注释和错误
4、在做开发的时候,强烈建议大家多查jdk帮助文档
5、在使用类时,实在不知道怎么办,多使用搜索引擎
至此,关于类的定义又可以跟进一步得到完善:
package 包名; class 类名 extends 父类{ 成员变量; 构造方法; 成员方法; }
二、方法重载和方法覆盖
在讲解多态前,必须讲解方法重载(overload)和方法覆盖(override)。
1.方法重载(overload)
简单的说:方法重载就是在类的同一种功能的多种实现方式,到底采用哪种方式,取决于调用者给出的参数。
案例:
/* 方法重载(overload)getMax 写一个类(Abc),编写方法可以接收两个整数,返回两个数中较大的数[Demo119.java] */ public class Demo119{ public static void main(String []args){ Abc2 abc1=new Abc2(); System.out.println(abc1.getMax(12,14)); System.out.println(abc1.getMax(24f,20f)); } } class Abc{ //返回较大的整数publicint getMax(int i,int j){ if(i>j){ return i; }else{ return j; } } //返回较大的float类型数publicfloat getMax(float a,float b){ if(a>b){ return a; }else{ return b; } }
关于方法重载的更多说明:
1、方法名相同
2、方法的参数类型,个数,顺序至少有一项不同
3、方法返回类型可以不同(只是返回类型不一样,不能构成重载)
4、方法的修饰符可以不同(只是控制访问修饰符不同,不能构成重载)
2.方法覆盖(override)
方法覆盖就是子类有一个方法,和父类的某个方法的名称、返回类型、参数一样,那么我们就说子类的这个方法覆盖了父类的那个方法。如下例Cat类中的cry方法就覆盖了Animal类的cry方法。
// 子类方法覆盖父类方法[Demo120.java] public class Demo120{ public static void main(String []args){ // 创建一只猫 Cat cat1=new Cat(); cat1.cry(); Dog dog1=new Dog(); dog1.cry(); } } //动物类class Animal{ int age; String name; //都会叫publicvoid cry(){ System.out.println("我是动物,不知道怎么叫"); } } //猫猫类class Cat extends Animal{ //覆盖父类方法publicvoid cry(){ System.out.println("猫猫叫!"); } } //狗狗类class Dog extends Animal{ //覆盖父类方法publicvoid cry(){ System.out.println("汪汪叫!"); } }
关于方法覆盖的更多说明:
方法覆盖有两点一定要注意:
1、子类的方法的返回类型,参数,方法名称,要和父类的返回类型,参数,方法名称完全一样,否则编译出错。
2、子类方法不能缩小父类方法的访问权限。
原文:http://www.cnblogs.com/Davis812/p/3908576.html
内容总结
以上是互联网集市为您收集整理的java面向对象编程(六)--四大特征之继承、方法重载和方法覆盖全部内容,希望文章能够帮你解决java面向对象编程(六)--四大特征之继承、方法重载和方法覆盖所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。