`
danlei94
  • 浏览: 9269 次
  • 性别: Icon_minigender_2
社区版块
存档分类
最新评论

Java类的继承的总结

阅读更多

Java类的继承的总结

前段时间学习了Java类的继承的一些知识,在这里进行回顾并总结一下。

 

上一篇博文中,我分析了类和对象的关系,类的继承其实也很简单。

 

我们要先知道,一个类的方法和属性,访问类型有publicprotectedprivate和默认类型(前面不加任何关键字)

 

【存在类的继承的理由】

无论是生活还是程序表达中,我们都会出现一方是在另一方的基础上演变过来的情形。比如大学生也是学生,猫也是动物。小明是大学生,那他肯定是学生。两者之间都会有一种包含和继承关系。

因此Java中会用到 关键字 extends 去表示 继承这种关系。

【类的继承的一些关键】

关键1:子类继承父类全部的方法和属性,父类是基类,子类也叫派生类。

        注意:“全部”包括私有的、公有的、受保护的和默认的所有类型。

关键2JAVA中类的继承只能是单继承,即子类只能继承一个父类。

关键3:子类去调用父类的方法时,

注意:有两种情况

①如果父类和子类都在同一个包中,子类能调用publicprotected和默认的方法,不能调用private方法

②如果父类和子类在不同包中,子类只能调用publicprotected的方法,不能调用private和默认的方法

 

也就是说,任何时候子类都不能去调用父类的private方法,任何时候子类都可以去调用publicprotected方法,默认方法则根据子类和父类位置关系来确定。

 

【自动转型】    

我们可以看如下例子:

 

 

public class Test1 {

 

/**

 * @param 创建st对象

 */

public static void main(String[] args) {

Student1 st=new UStudent1();

st.Stuprint();

 

}

 

}

<!--EndFragment-->

 

UStudent1是继承Student1的子类

 

我在主函数中创建了一个st对象。

Student1 st=new UStudent1();

st本来定义的是Student1类型的,但是却指向UStudent1的类开辟的空间。

这种写法是允许的,并且是自动转化的。

 

总结来说:自动转型是指子类对象的类型定义为父类类型,也就是子类对象的类型可以自动转换为父类类型。

 

注意:创建为以上这种自动转型的情况之后(Student1 st=new UStudent1();

)对象调用方法的时候一般不能调用子类特有的方法

  

【接口】

编程中,我们还可能遇到一种不是类,但是又和类有一点类似的类型,它叫接口。

接口的关键字为interface

 

接口其实就可以看成是在C++中我们学习的抽象类,里面也只能定义纯虚函数。

也就是说,接口中定义的方法,没有确定的实现体。(即每个方法里没有代码)

          接口中定义的属性,也必须是常量。(不能使变量)

类似的,接口不能直接用来创建对象,一定要先去写一个实现接口的子类!实现接口的这个子类必须要去重写接口中的函数。

public interface Student {

 

public void study(int hour);

}

 

<!--EndFragment--> 

上图中,Student就是一个接口,interface就是接口的关键字。接口中声明的函数体也没有实现。

public class Ustudent implements Student {

public void study(int hour)

{

System.out.println("我学习了"+hour+"个小时");

}

}

 

<!--EndFragment--> 

Ustudent 类就是实现Student接口的子类,它必须要去重写接口中定义的方法。

继承接口的关键字是implements

 

【类和接口的比较】

1.类的关键字是class,接口的关键字是interface

2.类可以直接创建对象,而接口不能直接创建对象。

3.继承类的关键字是extends,继承(实现)接口的关键字是implements

4.类中每个函数体必须有具体的实现,而接口定义的每个函数体一定不能有实现。

5.类中对属性没有限制,常量变量均可,接口不能定义变量,只能定义常量。

6.一个子类只能继承一个父类(单继承),一个接口但是可以继承多个接口。(一个类可以也可以同时继承一个类和多个接口)

 

 

小结:我从为什么要有类的继承开始说起,先后总结了类的继承的一些关键点、自动转型的特点、接口的特点以及接口和类的比较。

小女纸觉得自己对类和对象还有继承是比较清楚的,但是难免有疏忽的地方,如果有什么错误的地方还望大家指出来哟~

<!--EndFragment-->
分享到:
评论

相关推荐

    java的继承总结.doc

    java的继承总结.doc

    JAVA中的继承学习总结

    JAVA中的继承学习总结JAVA中的继承学习总结

    Java方法继承、方法重载、方法覆盖总结

    Java方法继承、方法重载、方法覆盖总结。比较具体细致地描述他们之间的连系与区别,需要的同学可以看看。

    Java实验报告——类的继承、多态的应用

    1、实验名称:类的继承、多态的应用 2、代码内容:学生管理类 3、【实验目的】 (1)进一步熟悉抽象类和抽象方法的定义 (2) 进一步掌握集成和多态的实现方式。

    封装继承多态总结

    封装继承多态总结

    Java继承_抽象类与接口的应用.

    1.继承及继承实例 2.方法重写(Overwrite) 3.super关键字 4.方法重载(Overload) 5.final修饰符 6.abstract修饰符 7.抽象类 8.接口 9.接口和抽象类对比 10.接口和抽象类使用场合实例 11.总结

    《java面向对象程序设计-继承和多态》教案.doc

    除了构造方法之外,父类的所有 方法和属性都被子类的对象继承 多态性是不同的实例对象以不同的方式对相同的信息作出不同的表现 访问修饰符用于确定访问类成员的方式 Java 常用修饰符有 static、final、abstract 接口...

    Java基础知识点总结.docx

    Java学习更是如此,知识点总结目录如下: 目录 一、 Java概述 3 二、 Java语法基础 5 数据类型 5 运算符号 14 语句 15 函数 15 方法重载(Overloadjing)与重写(Overriding) 16 数组 17 总结 18 三、 常见关键字 ...

    java语言内部类总结

    定义在一个类内部的类叫内部类,包含内部类的类...内部类可以声明public、protected、private等访问限制,可以声明为abstract的供其他内部类或外部类继承与扩展,或者声明为static、final的,也可以实现特定的接口。

    Java 基础核心总结 +经典算法大全.rar

    《Java 基础核心总结》 Java 概述 什么是 Java2 Java 的特点Java 开发环境 JDK JRE Java 开发环境配置 Java 基本语法 数据类型基础语法运算符 Java 执行控制流程条件语句 if 条件语句 if...else 条件语句if...else ...

    实验5 JAVA常用类.doc

    本专栏主要为Java程序设计(基础)实验报告和Java程序设计(进阶)实验报告,基础篇有JAVA环境搭建、Java语言基础、方法和数组、面向对象基础、Java常用类、继承与接口、成员访问控制与异常、JavaFX程序设计、Java...

    java基础核心总结归纳---参考手册--心得手册-学习资料-总结经验

    继承 17 多态 17 代理 17 Static 17 Final 17 接⼝和抽象类 18 接⼝ 18 抽象类 18 异常 18 认识 Exception 18 什么是 Throwable 18 常⻅的 Exception 19 与 Exception 有关的 Java 关键字 19 什么是 Error 20 内部类...

    Java基础知识总结(总共六章)

    JAVA 基础知识总结 第一章 Java 入门 第二章标示符,运算符 第三章表达式,语句 第四章数据类型,字符串,数组 第五章类,方法,关键字保留字 第六章对象,继承,接口, 包 1. 对象: 声明对象: 类名对象名称=null...

    2011最新最全的JAVA面试题总结.txt

    2011最新最全的JAVA面试题总结.txt JAVA 面试题汇总 一、 JAVA 基础知识 1、面向对象的特征有哪些方面 1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不...

    Java面向对象总结

    在JAVA中使用关键字extends 3.调用子类的构造方法时,会先调用父类的构造方法。默认隐式调用父类无参数的构造方法 4.如果要在子类的构造方法中显式调用父类的构造方法。使用super(参数列表),但是这行代码必须是在 ...

    java 面试题 总结

    java.lang.String类是final类型的,因此不可以继承这个类、不能修改这个类。为了提高效率节省空间,我们应该用StringBuffer类 3、int 和 Integer 有什么区别 Java 提供两种不同的类型:引用类型和原始类型(或内置...

    Javaoop学习总结

    java的学习总结 有继承 封装 多态 线程 都是自己总结的经验

    计算机二级摸底测验Java题继承和接口和java访问权限修饰符总结编程资料目编程资料

    计算机二级摸底测验J继承和接口和java访问权限修饰符总结ava题目

    java基础学习总结

    &lt;&lt;java基础&gt;&gt; 类和对象&gt;&gt; 接口&gt;&gt; 继承&gt;&gt; 异常&gt;&gt; 线程&gt;&gt; &lt;&lt;applet&gt;&gt; &lt;&lt;Color&gt;&gt; &lt;&lt;Collection&gt;&gt; 流&gt;&gt;

    java oop总结

    Java面向对象编程概述 Java类定义 内部类和继承 继承的使用 异常处理 数组 Java常用类 集合类 泛型化的集合框架 使用Java的输入/输出类 Java GUI和Swing 事件委托模型.....的详细概述

Global site tag (gtag.js) - Google Analytics