美文网首页
Java继承

Java继承

作者: 不愿透露姓名的大磊 | 来源:发表于2018-09-19 20:59 被阅读0次

接口的定义:

接口是功能的集合,同样可看做是一种数据类型,是比抽象类更为抽象的”类”。

接口只描述所应该具备的方法,并没有具体实现,具体的实现由接口的实现类(相当于接口的子类)来完成。这样将功能的定义与实现分离,优化了程序设计。

请记住:一切事物均有功能,即一切事物均有接口。

与定义类的class不同,接口定义时需要使用interface关键字。

定义接口所在的仍为.java文件,虽然声明时使用的为interface关键字的编译后仍然会产生.class文件。这点可以让我们将接口看做是一种只包含了功能声明的特殊类。

使用interface代替了原来的class,其他步骤与定义类相同:

接口中的方法均为公共访问的抽象方法

接口中无法定义普通的成员变量

在类实现接口后,该类就会将接口中的抽象方法继承过来,此时该类需要重写该抽象方法,完成具体的逻辑.

接口中定义功能,当需要具有该功能时,可以让类实现该接口,只声明了应该具备该方法,是功能的声明。

在具体实现类中重写方法,实现功能,是方法的具体实现。

于是,通过以上两个动作将功能的声明与实现便分开了。(此时请重新思考:类是现实事物的描述,接口是功能的集合。)


特点

1.接口中可以定义变量,但是变量必须有固定的修饰符修饰,public static final 所以接口中的变量也称之为常量,其值不能改变

2.接口中可以定义方法,方法也有固定的修饰符,public abstract

3.接口不可以创建对象。

4.子类必须覆盖掉接口中所有的抽象方法后,子类才可以实例化。否则子类是一个抽象类


继承的定义

Java中是允许继承的,就是当A类继承B类时,那么A类就会拥有B类所有可以继承过来的内容.那么A类就叫做子类,B类就是父类

 注意:

1.Java中只允许单继承,也就是一个类只能有一个父类;但是一个父类却可以拥有多个子类

2.继承要合理

3.Java所有的类默认继承自Object,是所有类的根类,每个类都直接或者间接继承他


子类可以通过接口间接的访问父类中的私有属性

方法重写:指的是子类从父类继承过来的方法,如果不满足子类需求时,子类可以重写父类方法实现

重写分为:

完全重写:不保留父类方法的实现

不完全重写:保留父类方法实现,但是还会添加自己对象方法的实现


抽象类的应用场景:当一个父类定义方法还对方法进行的实现,但是发现子类只要继承这个类,就会对父类的方法进行重写,那么父类对这个方法的实现就没有意义.此时就可以把这些方法定义到抽象类中,抽象类中方法都是抽象方法,因为只有声明而没有方法具体实现.

abstract 抽象类的关键字

抽象类只能作为父类,因为抽象类不能实例化.

原因是它里面的方法是抽象方法,没有具体实现

继承自抽象类的子类,必须实现抽象类中抽象方法


接口和抽象类的相同点与区别

相同点:

1.都位于继承的顶端,用于被其他类实现或继承;

2.都不能直接实例化对象;

3.都包含抽象方法,其子类都必须覆写这些抽象方法;

区别:

1.抽象类为部分方法提供实现,避免子类重复实现这些方法,提高代码重用性;接口只能包含抽象方法;

2.一个类只能继承一个直接父类(可能是抽象类),却可以实现多个接口;(接口弥补了Java的单继承)

3.抽象类是这个事物中应该具备的你内容, 继承体系是一种is..a关系

4.接口是这个事物中的额外内容,继承体系是一种like..a关系

二者的选用:

优先选用接口,尽量少用抽象类;

需要定义子类的行为,又要为子类提供共性功能时才选用抽象类

相关文章

  • Java继承

    一、Java继承详解 Java继承目录:1.为什么要”继承“?2.继承的类型2.1 单继承2.2 多重继承2.3 ...

  • Java继承

    Java继承 一、继承类型 Java不支持多继承,但是支持多重继承 二、继承的特性 子类拥有父类非 private...

  • JAVA语言第二课

    JAVA面向对象——四大特征 继承篇——extendsJava 继承继承的概念继承是java面向对象编程技术的...

  • java培训专家介绍java的特性之:继承

    java培训专家介绍java的特性之:继承 什么是继承?java特性继承又是什么?在线教育平台专家为你解答! 多个...

  • JAVA 核心笔记 || [7] 继承

    继承 被继承的类为 基类 或者 父类 类 只能单继承 不可同时继承多类 Animal.java Dog.java ...

  • 继承

    java中对于继承,java只支持单继承。java虽然不直接支持多继承,但是可实现多接口。 1:成员变量。当子父类...

  • 2017-12-29

    Java学习日记(4) 主要谈一下——继承extends 个 Tips : Java不像c++,Java是单继承(...

  • JAVA核心技术总结(五六章)继承&接口与内部类

    第五章 继承 在Java中,所有的继承都是公有继承,没有C++的私有继承和保护继承 Java同C++一样,子类不能...

  • Java初级笔记No.3(更新中)

    2018.7.26 1、Java中的继承 Java中使用extends关键字来说明继承关系。 2、继承的特性 ja...

  • Java中的继承

    Java中的继承 Java 继承 什么是继承 继承是用来描述“is-a”的关系;如果说两个对象A和B,若可以描述成...

网友评论

      本文标题:Java继承

      本文链接:https://www.haomeiwen.com/subject/ftdwnftx.html