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第七天:面向对象(继承、子父类之变量、final、抽象、模板方法、接口)

------- android培训、java培训、期待与您交流! ----------  继承(extends) 继承的作用:1、提高代码的复用性。 2、让类与类之间产生关系,才有了多态特性。 注意...

Java基础10 接口的继承与抽象类

作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢!   在实施接口中,我们利用interface语法,将interface从类定义...

Java基础之面向对象(三)--继承、抽象类、接口、final修饰符、模版方法模式

继承: /* 将学生和工人的共性描述提取出来,单独进行描述, 只要让学生和工人与单独描述的这个类有关系,就可以了。 继承: 1,提高了代码的复用性。 2,让类与类之间产生了关系。有了这个关系,...

黑马程序员_日记4_Java继承,抽象类和接口

——- android培训、java培训、期待与您交流! ———-继承一、继承的概述继承是面向对象最显著的一个特性。继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力...

黑马程序员—JAVA基础之继承、抽象类、接口

继 承 (面向对象特征之一) 继承需要使用一个关键字:extends,字面意思为扩展 格式:ClassA extends ClassB   JAVA类支持单继承类(接口可以多继承接口) 但...
  • yxqcz
  • yxqcz
  • 2014-04-25 19:37
  • 213

Java中继承thread类与实现Runnable接口的区别

1.  通过继承Thread类,重写Thread的run()方法,将线程运行的逻辑放在其中 2.  通过实现Runnable接口,实例化Thread类       在实际应用中,我们经常用到...

java 中什么时候用抽象类,什么时候用 接口(面向对象的继承与多态)

抽象类:强调的是把共同(共有、相同)的属性方法, 抽象出来,统一写在一个地方(他们的实现代码是一样的),方便维护。 接口: 抽象的是行为 - 同一种行为的不同实现方式。当多个对象都拥有相同的行为,但是...

Java基础--面向对象(继承、抽象类、接口)

面向对象:继承概念:  将对象共性描述提取出来,单独进行描述,形成一个类,这个类被称之为父类,其他的类如果有这个类相同的特征且还有自己的特有功能则用extends(关键字)进行关联父类即可,这种方式称...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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