Java基础---继承
继承的基本作用是:代码的复用。默认所有的类都继承与Object类
一、概念:
继承是java面向对象编程的基石,继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。
public class Person {public void run() {System.out.println("任何人都可以跑。。。");}
}class Student extends Person{private void eat() {System.out.println("学生正在吃。。。。");}public static void main(String[] args) {Student student = new Student();student.run();student.eat();}}
student.run(): student对象通过内存地址的调用,找到student实例,发现student实例当中没有run()方法,于是便去父类当中寻找,进而调用父类当中的run()方法。
student.eat():student对象通过内存地址的调用,找到student实例,发现student实例当中有eat()方法,直接调用。
二、super关键字
super 关键字有两个用途:一是调用超类的方法,二是调用超类的构造器。调用构造器语句的时候只能作为另一个构造器的第一条语句出现。
三、明确方法重载和方法重写
1.方法重载
//方法的重载public void getRun() {System.out.println("所有小猫都能跑。。。。");}//一个方法的签名是由方法名称以及参数列表所组成//方法的重载是指在一个类当中有相同的方法名不同的参数列表public void getRun(int s) {System.out.println("所有小猫都能跑。。。。"+s);}public static void main(String[] args) {Cat cat = new Cat();cat.getRun();}
2.方法重写
在有些时候,子类当中需要调用父类当中的方法,但是父类当中的方法对子类来说并不一定适用。这个时候我们就需要使用到方法的覆盖。例如
public class Person {public void run() {System.out.println("任何人都可以跑。。。");}
}class Student extends Person{public void run() {System.out.println("这个学生在跑。。。");}private void eat() {System.out.println("学生正在吃。。。。");}public static void main(String[] args) {Student student = new Student();student.run();student.eat();}}
student.run(): student对象通过内存地址的调用,找到student实例,发现student实例当中有run()方法,直接调用
重载和重写的区别
重载: 发生在同一个类中,方法名必须相同,参数类型不同、个数不同、顺序
不同,方法返回值和访问修饰符可以不同,发生在编译时。
重写: 发生在父子类中,方法名、参数列表必须相同,返回值范围小于等于父
类,抛出的异常范围小于等于父类,访问修饰符范围大于等于父类;如果父类
方法访问修饰符为 private 则子类就不能重写该方法。
四、继承层次
java只支持单继承,一个类只能继承一个类,不能同时继承多个类
继承并不限于一个层次。
public class Person {public void run() {System.out.println("任何人都可以跑。。。");}
}
class Student extends Person{public void run() {super.run();System.out.println("这个学生在跑。。。");}private void eat() {System.out.println("学生正在吃。。。。");}public static void main(String[] args) {Student student = new Student();student.run();student.eat();}
}
class XiaoMing extends Student{}
class XiaoHong extends Student{}
java虽然只支持单继承,但是一个类也可以间接继承其他类。由一个公共超类派生出来的所有类的集合被称为继承层次,在继承层次当中,从某个特定的类到其祖先的路径被称为继承链,但是一定要注意java是单继承的。
Java基础---继承相关推荐
- 黑马程序员——Java基础---继承,抽象,多态,接口,包,内部类
-----------android培训.java培训.java学习型技术博客.期待与您交流!------------ 一.继承 (一)继承概述 多个类中存在相同属性和行为时,将这些内容抽取到单独一个 ...
- 黑马程序员——Java基础——继承
------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS ...
- java 基础---继承
继承 一,概述 a) 使用extends关键字可以让一个类继承另一个类,继承的类为子类,被继承的类是父类,子类会自动继承父类的所有方法和属性. b) 继承使得类和类之间产 ...
- (2)java基础继承
定义类Human,具有若干属性和功能:定义其子类Man.Woman: 在主类Test中分别创建子类.父类和上转型对象,并测试其特性. Human: package eryi;public class ...
- Java基础---继承详解--this/supper---方法的重写与重载
继承 语法:子类 extends 父类 java中如果要定义两个类的继承关系,一定要满足里氏代换原则. 子类:用于继承的类,也称为派生类 父类:被继承的类,也称为超类.基类 特点:1.子类可以拥有父类 ...
- JAVA基础--继承(inheritance)
一.继承 1.class:编程语言中的基本单位.将数据和功能封装到了一起.使用类来对同一类型的对象建模. 2.父类(superclass)包含其所有子类(subclass)共享的数据域和方法.即子类继 ...
- 10.java基础----继承、抽象类- 编程
命名要求:1. 类名,接口名,枚举名,注解名使用大驼峰2. 变量名,方法名,包名均使用小驼峰3. 常量名全大写,多个单词下划线分割4. 名字要见名知意,如果不知道对应的英文,可以使用拼音代替.不可使用 ...
- Java基础---继承、抽象、接口
第一讲 继承 一.概述 继承是面向对象的一个重要特征.当多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继那个类即可.这时,多 ...
- Java基础--继承案例(二)
/*** 通过类来体现类与类之间的关系:* 1,创建动物类* 2,创建猫类* 3,创建狗类**/ public class InheritDemo {public static void main(S ...
最新文章
- 张一鸣卸任CEO,立下10年之约,期望突破线性延伸
- import cycle not allowed_Cycle药物介绍醋酸群勃龙(2)
- 手把手教你定制标准 Spring Boot starter
- PTA L1_002 打印沙漏(C语言)
- 深入理解java异常处理机制
- The POM for com.ruifeng.tjtaxiqy:shiro:jar:0.0.1-SNAPSHOT is missing, no dependency information avai
- Bootstrap创建输入框组
- antd 选择文件夹_antd 手动上传文件
- 电力企业计量生产运行系统总体解决方案
- from scapy.all import * 调试失败_记一次错:Vue-构建项目后使用 npm link 失败
- Jumpserver安装和总结
- Linux学习笔记 --网络配置及进程管理
- homework2:根据已知代码,回答问题
- [GIS原理] 10.1 空间统计描述(描述性分析、探索性数据分析)、空间自相关分析 - QQ图、权重矩阵、Moran'sl、G统计量
- HTTPS那些事(二)SSL证书
- Leetcode506.Relative Ranks相对名次
- Xcode中iOS项目目标变为Mac的解决办法
- 华图网校 计算机网络基础,阅读以下文字,完成 26~30 题。随着计算机和网络技术的发展,特别是...
- 读书笔记之:C++ Primer (第4版)及习题(ch12-ch18)
- 用 GitHub 搭建静态博客太繁琐?用这个小工具实现「傻瓜式」发布!
热门文章
- flask使用sqlit3的两种方式
- 【★★★★★】提高PHP代码质量的36个技巧
- Eclipse SVN修改用户名和密码
- 杰克·韦尔奇语录-世界第一CEO
- 最大团问题-分支限界
- 【转】学习理论,注重细节
- 关于科来网络分析系统的激活
- ue4 后期处理景深_珠宝摄影教程——后期修图景深合成(如何完全把珠宝全部拍清晰)...
- win10电脑浏览器哪个好_电脑WinXP、Win7和Win10,哪个操作系统最好用?
- NASM汇编语言与计算机系统05-以大写16进制在屏幕显示内存中的值(shr/shl/jb)