Java中类的继承与接口

原创 2015年07月10日 17:32:28

         Java中的另一个特点就是继承,一般而言Java中是不能多继承的,但是对于接口而言,又可以说是多继承的。

        在Java中,一个工程一般都有很多的类,而有的时候类与类之间代码是有重复的,这些重复的代码有时候我们可以向上抽去出来,形成一个新的类,这个新的类就是父类,而原来的类就是子类,子类可以通过extends继承父类,父类中有的东西,子类中也会有(除了父类中私有的变量和函数)。当然继承的时候,子父类中难免会出现同名的变量,这个时候在子类或者主函数中实例化后引用的变量肯定是子类里的变量,父类中的就好像是被子类中的同名变量覆盖了一样,这个时候如果我们想引用父类中的变量的时候我们可以用super关键字,它和this关键字基本上一样,只是this代表的是本类,super代表的是父类而已。子父类中的函数也和变量差不多,当子类中出现和父类中一模一样的函数时,子类对象调用该函数时,会运行子类函数的内容,这就是函数的一个特性:重写。重写功能一般就是用在子类中有和父类一样的函数,但是函数主体中的内容不同,这时候我们不需要定义新的函数编写这个功能,只需要是用覆盖特性就可以了。

        类中还有一个特殊的函数,就是构造函数,构造函数就是和类名相同的函数。在子类进行初始化的时候,父类中的构造函数也会运行,那是因为子类的构造函数中第一行会有一条默认的语句:super(),这就会调用父类总的构造函数,如果函数super(参数...),它就会调用与之对应的构造函数。为什么子类初始化会访问父类的构造函数呢?因为子类在继承父类的时候,子类必须知道父类中有什么样地函数和变量,这样子类才能继承,而在查看父类中的函数和变量的时候,父类中的变量和函数就会进入内存,这时候就会对父类初始化。还有一点需要注意的是,当我们想让子类初始化时访问特定的父类构造函数时,我们手动书写super语句时必须写在子类构造函数的第一行。

        学习继承的时候,我们肯定会接触到关键字final的,final可以修饰类、函数和变量,而且被final修饰的类不可以被继承。继承有一个弊端,就是打破了类的封装性,所以当我们的类或者函数不想被继承的时候,我们可以用final进行限制。final修饰变量的时候就是我们平时常使用的常量。

        我们学习继承的时候,肯定会接触到abstract关键字,这是抽象的意思。当多个类中出现相同功能,但是功能主体不同,这时可以向上进行抽取,只抽取功能定义,而不抽取功能主体,这就是抽象方法,而抽象方法必须放在抽象类中,子类对这样的父类进行继承时,我们必须对其中的抽象方法进行复写,把功能主体实现。按我学习接口的理解,接口就是一种特殊的类,抽象类中不但可以定义抽象方法,还可以定义一般方法,但是接口中的方法全部都是抽象方法,用interface定义接口,而接口与接口之间可以进行多继承。接口中的成员都有固定的修饰符,常量:public static final  方法:public abstract名字(),类继承接口时,不是extends而是implement,这时被称为实现,类中实现借口时,我们必须把接口中的方法实现,如果不实现,那这个类还是抽象类。接口主要就是为了实现类的功能扩展。

java中类的继承

1.面向对象最重要的特点之一,就是可以实现对类的复用。2.通过“继承”一个现有的类,可以使用已经定义的类中的方法和变量。3.类的方法和属性可以被继承,但是类的构造器不能被继承。4.在Java中,一个类...
  • wwwwsoe
  • wwwwsoe
  • 2007年04月12日 23:48
  • 4361

JAVA面向对象 类的继承

本页面更新日期: 2016年07月30日前言 继承是面向对象的三大特征之一. 也是实现软件复用的重要手段. Java继承具有单继承的特点, 每个子类只有一个直接父类. 继承的特点 ...
  • tmdlife
  • tmdlife
  • 2016年07月26日 20:10
  • 1528

面向对象--继承、接口

1)继承 好处:提高代码的复用性;使类与类之间产生关系密切,有了关系才有多态的特点。 关键字:extends 注意:java中只支持单继承(只继承一个父类),不支持多个继承(同时继承多个父类),但是j...
  • iamjb180
  • iamjb180
  • 2015年03月12日 09:57
  • 426

Java类与类之间的继承关系

Java父类与子类继承关系,调用的各种关系示例一(子类调用父类函数):// 定义一类 A public class A { // 此方法打印一句话 public void a() { ...
  • u011967006
  • u011967006
  • 2016年12月15日 18:38
  • 1154

详解Java集合框架的接口和类层次关系

一位国外的java大神用3张图表示了Java集合框架的接口和类层次关系,并配有代码示例 让你秒懂他们之间的关系,废话不多,直接上图:   Collection和Collections...
  • qq_32506555
  • qq_32506555
  • 2016年06月23日 22:01
  • 907

类与类、类与接口、接口与接口之间的继承个数问题

1、类与类之间可以表示为继承的关系,用extends关键字表示的。这是因为如果一个类即继承了A类, 又继承了B类,若AB有两个相似的方法,没办法确定继承哪一个方法,所以类的继承只能是一对一的。但是一...
  • u010722938
  • u010722938
  • 2014年09月26日 10:46
  • 1215

澄清Java语言接口与继承的本质

计算机学院研二的兄弟与我讨论Java,一见面,几个问题全是关于接口,接口有什么用?为什么要用接口?什么时候该使用接口?很庆幸他们不是问我Java如何连接SQL Server,或者是如何开发J2EE应用...
  • beiai1014
  • beiai1014
  • 2007年04月12日 11:19
  • 1627

Java ——基础之继承与接口的区别

Java 基础之继承与接口的区别 抽象类:抽象类体现了数据抽象的思想,是实现多态的一种机制。它定义了一组抽象的方法,至于这组抽象方法的具体表现形式由派生类来实现。同时抽象类提供了继承的概念,...
  • zouzhigang96
  • zouzhigang96
  • 2016年01月06日 15:14
  • 7151

java集合中各个接口与实现类的区别

Collection接口包括三个子接口分别为Set、Queue、List。     List接口主要有两个实现类ArrayList、LinkedList。List接口是有序集合、元素可以重复,次序是L...
  • Fighting_rookie
  • Fighting_rookie
  • 2016年04月09日 20:39
  • 2594

Java继承-类、超类、子类

class Employee{ private String name; private int age; private double salary; public ...
  • ujnlvxin
  • ujnlvxin
  • 2015年04月06日 16:37
  • 822
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java中类的继承与接口
举报原因:
原因补充:

(最多只允许输入30个字)