当前位置:首页 > 开发 > 编程语言 > Java > 正文

Java类的继承的总结

发表于: 2014-10-23   作者:danlei94   来源:转载   浏览次数:
摘要: Java类的继承的总结 前段时间学习了Java类的继承的一些知识,在这里进行回顾并总结一下。   上一篇博文中,我分析了类和对象的关系,类的继承其实也很简单。   我们要先知道,一个类的方法和属性,访问类型有public、protected、private和默认类型(前面不加任何关键字)   【存在类的继承的理由】 无论是生活还是程序表达中,我们都会出

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类的继承的总结

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
Java:类与继承   对于面向对象的程序设计语言来说,类毫无疑问是其最重要的基础。抽象、封装、继
加载顺序为 父类静态定义初始化 子类静态定义初始化 父类定义初始化 父类构造方法 子类定义初始化
java集合类主要负责保存、盛装其他数据,因此集合类也称容器类。java集合类分为:set、list、map、q
选自:http://android.yaohuiji.com/archives/category/java/ 今天在网上搜索了一下,发现一篇关于j
java集合类主要负责保存、盛装其他数据,因此集合类也称容器类。java集合类分为:set、list、map、q
集合类被分为两种,一种是Collection,另一种是Map。 1.Collection 一个独立元素的序列,这些元素都
一、异常的概念和Java异常体系结构 异常是程序运行过程中出现的错误。Java语言的异常处理框架, 是J
今天在网上搜索了一下,发现一篇关于java集合的博文,里面整理得非常好, 特意copy过来和大家分享一
下面是我自己画的,关系画得没上面好,但我自己看着清楚些 还有一张下载来的: 几个面试常见问题:
1.java容器分类图   说明:左图为简化图(其中粗线部分是重点的容器),右图为完整容器分类图 2.
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号