继承就是在一个现有类型的基础上,通过增加新的方法或者重定义已有方法(重写)的方式,产生一个新的类型。继承是面向对 象的三个基本特征——封装、继承、多态的其中之一,我们在使用java时编写的每一个类都是在继承,因为在java语言 中,java.lang.object类是所有类最根本的基类(或者叫父类、超类),如果我们新定义的一个类没有明确地指定继承自哪个基类,那么java 就会默认为它是继承自object类的。

  1.为什么需要使用继承? 提高代码的重用性。 提高程序的扩展性。

  2.Java继承的语法格式 Java继承的关键字:extends 格式: public class 类名(子类,派生类,超类) extends 类名(父类,基类) { } ?注意: Java类的继承是单继承。

  3.子类继承到了父类的哪些属性和方法 子类继承父类后,子类继承到了父类所有的属性和普通方法。构造方法没有被子类继承。 能不能调用方法或属性,是因为访问修饰符的关系来决定的。 public所有的地方都可以调用 protected当前包下和有继承关系不同包的子类中。 默认的只能在当前包下调用 private只能在当前类中。 子类能自己定义属性和方法吗? 可以并且子类可以拥有比父类更多的属性和方法

  4.方法重写 方法重写的条件 必须要存在继承关系 方法的返回值类型,方法名,参数个数,参数类型,参数顺序都必须要和父类的完全一致。 子类重写方法时,方法的访问修饰符可以大于或者等于父类方法的访问修饰符。 在调用方法的时候是否会调用错方法? 创建的对象是否是子类的(new 构造方法()) 如果是子类的构造方法创建的对象,那会优先执行子类的方法,子类没有才会执行父类的方法。 重载和重写的区别: 重载和重写都是针对方法的概念,在弄清楚这两个概念之前,我们先来了解一下什么叫方法的型构。型构就是指方法的组成结构,具体包括方法的名称和参数,涵盖 参数的数量、类型以及出现的顺序,但是不包括方法的返回值类型,访问权限修饰符,以及abstract、static、final等修饰符。比如下面两个就是具有相同型构的方法: public void method(int i string s) { // do something } public string method(int i string s) { // do something } 而这两个就是具有不同型构的方法: public void method(int i string s) {// do something } public void method(string s int i) { // do something } 重载: 英文名是overload,是指在同一个类中定义了一个以上具有相同名称,但是型构不同的方法。在同一个类中,是不允许定义多于一个的具有相同型构的方法的。 方法名相同,但参数类型、数量或顺序必有一不同。 在同一类中或有继承关系的类中均可重载。 重写: 英文名是override,是指在继承情况下,子类中定义了与其基类中方法具有相同型构的新方法,就叫做子类把基类的方法重载了。这是实现多态必须的步骤。 方法名、参数类型、数量、顺序必须完全相同,访问修饰符可以不同,但子类必须大于或等于父类。只发生在有继承关系的类中。

  5.自动转型 方向:由子类自动转为父类 前提:两个对象所在的类存在继承关系 语法: [1]直接自动转型 父类名 对象名 = new 子类构造函数(); Student stu =new UNStudent(); [2]在方法中进行自动转型 子类名 对象名 = new 子类构造函数(); UNStudent unstu =new UNStudent(); teach(unstu); 访问修饰符 返回值类型 方法名(父类名 参数名){ } public void teach (Student stu){ } 不必管创建对象左边的部分,只要看右边new的构造函数是子类还是父类, 如果是子类,则优先调用子类的方法。 注意:要使用自动转型,必须要存在继承关系。 格式: 父类名 对象名 = new 子类构造方法(参数值,...); Student un = new UNStudent(); un.play(); 使用自动转型后,不能调用子类自定义的方法; 因为Java编译时,只会根据对象名的类型去查找方法是否存在,如果存在则通过编译,如果不存在则报错。 实例:一个大学老师,可以教大学生,也可以教初中生,高中生,小学生 那么,对于这个教学的方法我们就可以只写一次。然后在使用时进行相应的自动转换一达到教学各种不同阶层学生的目地。 对于我们来说,使用自动转型,那么就只能调用父类中已经定义过的方法。 对于这个转型,我们有2种方法: 一: 父类名 父类对象名 = new 子类构造函数();二:父类名 父类对象名 = new 子类构造函数() 子类名 子类对象名 = new 子类构造函数(); public 返回值类型 方法名(父类类名 父类对象名){ 父类对象名.方法名(); } 方法名(父类对象名); 方法名(子类对象名);但是,自动转型也是有明显缺点的,如果使用自动转型,则无法调用子类的独有方法。因为计算机比较笨,它只能按照固定的已经设定好的方式去执行,Java在编译的时候,是根据对象名的类型去编译程序,这个时候在子类中,是找不到相应的方法的,所以编译出错了。

技术分享:www.kaige123.com

java类的继承的更多相关文章

  1. 【JAVA零基础入门系列】Day13 Java类的继承与多态

    继承是类的一个很重要的特性,什么?你连继承都不知道?你是想气死爸爸好继承爸爸的遗产吗?(滑稽) 开个玩笑,这里的继承跟我们现实生活的中继承还是有很大区别的,一个类可以继承另一个类,继承的内容包括属性跟 ...

  2. java类的继承的一些细节

    类的继承是java面向对象体系的一个重要方面(封装.继承.多态),对于java类的继承,需要注意如下细节. 1.构造函数. 如果一个类没有任何构造函数,系统会默认分配一个无参的构造函数给它,这个构造函 ...

  3. Java 类设计----Java类的继承

    Java类的继承 为描述和处理个人信息,定义类Person: public class Person { public String name; public inat age; public Dat ...

  4. Java面向对象-Java类的继承及super关键字

    Java面向对象-Java类的继承 1,继承定义以及基本使用 定义:子类能够继承父类的属性和方法: 注意点:Java中只支持单继承: 私有方法不能继承: 上代码: package com.java12 ...

  5. java类的继承,多态,抽象类与接口

    知识点梳理:     1,怎样定义自己的类. MyStarFrame,MyStarPanel 类中定义: (1)属性(数据),变量. (2)方法(函数),行为. (3)构造方法(特征,作用,何时被调用 ...

  6. java类的继承(基础)

    ---恢复内容开始--- 这篇随笔和大家讲讲java中类的继承是什么?希望对你们有所帮助. 目录 一.java继承是什么? 二.为什么使用java继承 三.java继承的实现 1.1  java继承的 ...

  7. java类与继承(转载)

    关于java的类与继承面链接是一个网友总结的,还有列子我个人觉得很详细 固拿来收藏,需要的朋友可从这里访问: http://www.cnblogs.com/dolphin0520/p/3803432. ...

  8. Java类的继承与多态特性-入门笔记

    相信对于继承和多态的概念性我就不在怎么解释啦!不管你是.Net还是Java面向对象编程都是比不缺少一堂课~~Net如此Java亦也有同样的思想成分包含其中. 继承,多态,封装是Java面向对象的3大特 ...

  9. Java 类的继承详解

    /*文章中用到的代码只是一部分,需要完整代码的可通过邮箱联系我1978702969@qq.com*/ 在面向对象的语言中如C++和JAVA,都有一个比较重要的机制——类的继承.这里将对JAVA中的类的 ...

随机推荐

  1. [小细节,大BUG]记录一些小问题引起的大BUG(长期更新....)

    [小细节,大BUG] 6.问题描述:当从Plist文件加载数据,放入到tableView中展示时,有时有数据,有时又没有数据.这是为什么呢?相信很多大牛都想到了:我们一般将加载的数据,转换成模型,放入 ...

  2. linux下如何设置vip(虚拟ip)

    在做HA的时候需要为服务器设计虚拟IP,也就是一个主机对应多个IP地址?刚听起来好神奇,原来这样也是可能的看了下面的这个链接 自己配了一下http://hi.baidu.com/pbottle/ite ...

  3. 教官的游戏(codevs 2793)

    题目描述 Description 有N个学生刚吃完饭,准备出食堂. 国防学校有个规矩:必须2人一排或3人一列离开. 两个教官A,B轮流取2或3人,谁先取完谁就赢得游戏.(A先取) 若两人都用最优策略, ...

  4. SQL with as

    姓名 课程 分数 张三 语文 张三 数学 张三 物理 李四 语文 李四 数学 李四 物理 先看下面一个嵌套的查询语句 ) 上面的查询语句使用了一个子查询.虽然这条SQL语句并不复杂,但如果嵌套的层次过 ...

  5. Nginx 服务器安装及配置文件详解

    原文出处: Sean Chow(@SeanLoook)   欢迎分享原创到伯乐头条 Nginx 在工作中已经有好几个环境在使用了,每次都是重新去网上找博客,各种编译配置,今天自己也整理一份安装文档和 ...

  6. HDU 4292 Food 最大流

    Food Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submis ...

  7. 电赛总结(二)——AD芯片总结之AD7705

    1.特性参数 (1)16位无丢失代码性AD转化器 (2)只需要3.3V供电(即只需要单片机即可供电) (3)双通道差分输入 (4)基准电压为2.5V时,在单极性信号下,输入范围是0到2.5V,在双极性 ...

  8. Python开发的10个小贴士

    下面是十个Python中很有用的贴士和技巧.其中一些是初学这门语言常常会犯的错误. 注意:假设我们都用的是Python 3 1. 列表推导式 你有一个list:bag = [1, 2, 3, 4, 5 ...

  9. DOM对象和JQuery对象

    1.JS对象转化为Jquery对象 Var p=document.getElementById(“p”); Var $obj=$(p); 2.Jquery对象转换为JS对象 Var $bh=$(“#i ...

  10. jQuery对表单、表格的操作及更多应用(下:其他应用)

    内容摘录自锋利的JQuery一书 三.其他应用  1 网页字体大小控制(P164) <span class="bigger">放大</span> <s ...