继承的基本作用是:代码的复用。默认所有的类都继承与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基础---继承相关推荐

  1. 黑马程序员——Java基础---继承,抽象,多态,接口,包,内部类

    -----------android培训.java培训.java学习型技术博客.期待与您交流!------------ 一.继承 (一)继承概述 多个类中存在相同属性和行为时,将这些内容抽取到单独一个 ...

  2. 黑马程序员——Java基础——继承

    ------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS ...

  3. java 基础---继承

    继承 一,概述 a)         使用extends关键字可以让一个类继承另一个类,继承的类为子类,被继承的类是父类,子类会自动继承父类的所有方法和属性. b)        继承使得类和类之间产 ...

  4. (2)java基础继承

    定义类Human,具有若干属性和功能:定义其子类Man.Woman: 在主类Test中分别创建子类.父类和上转型对象,并测试其特性. Human: package eryi;public class ...

  5. Java基础---继承详解--this/supper---方法的重写与重载

    继承 语法:子类 extends 父类 java中如果要定义两个类的继承关系,一定要满足里氏代换原则. 子类:用于继承的类,也称为派生类 父类:被继承的类,也称为超类.基类 特点:1.子类可以拥有父类 ...

  6. JAVA基础--继承(inheritance)

    一.继承 1.class:编程语言中的基本单位.将数据和功能封装到了一起.使用类来对同一类型的对象建模. 2.父类(superclass)包含其所有子类(subclass)共享的数据域和方法.即子类继 ...

  7. 10.java基础----继承、抽象类- 编程

    命名要求:1. 类名,接口名,枚举名,注解名使用大驼峰2. 变量名,方法名,包名均使用小驼峰3. 常量名全大写,多个单词下划线分割4. 名字要见名知意,如果不知道对应的英文,可以使用拼音代替.不可使用 ...

  8. Java基础---继承、抽象、接口

    第一讲    继承 一.概述         继承是面向对象的一个重要特征.当多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继那个类即可.这时,多 ...

  9. Java基础--继承案例(二)

    /*** 通过类来体现类与类之间的关系:* 1,创建动物类* 2,创建猫类* 3,创建狗类**/ public class InheritDemo {public static void main(S ...

最新文章

  1. 张一鸣卸任CEO,立下10年之约,期望突破线性延伸
  2. import cycle not allowed_Cycle药物介绍醋酸群勃龙(2)
  3. 手把手教你定制标准 Spring Boot starter
  4. PTA L1_002 打印沙漏(C语言)
  5. 深入理解java异常处理机制
  6. The POM for com.ruifeng.tjtaxiqy:shiro:jar:0.0.1-SNAPSHOT is missing, no dependency information avai
  7. Bootstrap创建输入框组
  8. antd 选择文件夹_antd 手动上传文件
  9. 电力企业计量生产运行系统总体解决方案
  10. from scapy.all import * 调试失败_记一次错:Vue-构建项目后使用 npm link 失败
  11. Jumpserver安装和总结
  12. Linux学习笔记 --网络配置及进程管理
  13. homework2:根据已知代码,回答问题
  14. [GIS原理] 10.1 空间统计描述(描述性分析、探索性数据分析)、空间自相关分析 - QQ图、权重矩阵、Moran'sl、G统计量
  15. HTTPS那些事(二)SSL证书
  16. Leetcode506.Relative Ranks相对名次
  17. Xcode中iOS项目目标变为Mac的解决办法
  18. 华图网校 计算机网络基础,阅读以下文字,完成 26~30 题。随着计算机和网络技术的发展,特别是...
  19. 读书笔记之:C++ Primer (第4版)及习题(ch12-ch18)
  20. 用 GitHub 搭建静态博客太繁琐?用这个小工具实现「傻瓜式」发布!

热门文章

  1. flask使用sqlit3的两种方式
  2. 【★★★★★】提高PHP代码质量的36个技巧
  3. Eclipse SVN修改用户名和密码
  4. 杰克·韦尔奇语录-世界第一CEO
  5. 最大团问题-分支限界
  6. 【转】学习理论,注重细节
  7. 关于科来网络分析系统的激活
  8. ue4 后期处理景深_珠宝摄影教程——后期修图景深合成(如何完全把珠宝全部拍清晰)...
  9. win10电脑浏览器哪个好_电脑WinXP、Win7和Win10,哪个操作系统最好用?
  10. NASM汇编语言与计算机系统05-以大写16进制在屏幕显示内存中的值(shr/shl/jb)