美文网首页
Java基础 继承

Java基础 继承

作者: 白衬衫少年 | 来源:发表于2017-03-03 01:54 被阅读0次

“简单不先于复杂,而是在复杂之后.” —— Alan Perlis

2.jpg

继承

  • 为什么要继承

说到OOP(面向对象)的特点,就不得不提继承,他使代码拥有了其他非OOP所没有的一种独特性---可复用性。
当你先创建了一个类之后,再创建一个新类,即使他和你之前的类有相似的功能,你还是需要重新编写此类。然而通过继承,你也许可以不这么做。


  • 继承确定了一种关系

在继承关系里,被继承的类被称为父类,而继承的类就被称为子类。子类继承了父类所有的属性(尽管private成员被隐藏起来,并且不可访问)和方法,不仅如此,子类还可以根据自己的独特性,扩展属性和方法。

代码
class Person {
    public Person() {

    }
}

class Man extends Person {
    public Man() {

    }
}

类Man继承于Person类,这样一来的话,Person类称为父类(基类),Man类称为子类(导出类)。如果两个类存在继承关系,则子类会自动继承父类的方法和变量,在子类中可以调用父类的方法和变量。在java中,只允许单继承,也就是说 一个类最多只能显示地继承于一个父类。但是一个类却可以被多个类继承,也就是说一个类可以拥有多个子类。


子类继承父类的成员变量

当子类继承了某个类之后,便可以使用父类中的成员变量,但是并不是完全继承父类的所有成员变量。具体的原则如下:

1.能够继承父类的public和protected成员变量;不能够继承父类的private成员变量;

2.对于父类的包访问权限成员变量,如果子类和父类在同一个包下,则子类能够继承;否则,子类不能够继承;

3.对于子类可以继承的父类成员变量,如果在子类中出现了同名称的成员变量,则会发生隐藏现象,即子类的成员变量会屏蔽掉父类的同名成员变量。如果要在子类中访问父类中同名成员变量,需要使用super关键字来进行引用。


子类继承父类的方法

1.能够继承父类的public和protected成员方法;不能够继承父类的private成员方法;

2. 对于父类的包访问权限成员方法,如果子类和父类在同一个包下,则子类能够继承;否则,子类不能够继承;

3.对于子类可以继承的父类成员方法,如果在子类中出现了同名称的成员方法,则称为覆盖,即子类的成员方法会覆盖掉父类的同名成员方法。如果要在子类中访问父类中同名成员方法,需要使用super关键字来进行引用


重写父类方法
  • 注意事项

子类方法访问权限大于等于父类方法权限;
子类可以访问父类被重写的方法.


继承特点:
  • 单继承

单继承和多继承各自的优缺点:
  • 多继承复用性更高,单继承复用性低;
  • 多继承关系复杂且有菱形缺陷,单继承没有;

相关文章

  • Java 基础 - 继承

    参考 C++多继承有什么坏处,Java的接口为什么可以摈弃这些坏处?C++多继承(钻石继承)的问题和解决C++继承...

  • java基础-继承

    继承的概念 继承描述的是事物之间的所属关系,通过继承可以使多种事物之间形成一种关系体系。例如公司中的研发部员工和维...

  • java基础——继承

    现实生活中有继承的关系,Java中也有继承的关系,所以说,Java来源于生活。实际上,Java是一门比较容易学习的...

  • Java基础-继承

    1.什么是继承 把多个类中相同的成员给提取出来定义到一个独立的类中.然后让这多个类和该独立的类产生一个关系. 2....

  • Java基础 继承

    “简单不先于复杂,而是在复杂之后.” —— Alan Perlis 继承 为什么要继承 说到OOP(面向对象)的特...

  • Java基础---继承

    继承的概念 继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类。继承就是子类继承父类的特征和行...

  • Java基础_继承

    1:继承是面向对象三大特征之一,三大特征分别是:封装、继承、多态、抽象 2:继承“基本”的作用是:代码复用,但是继...

  • 日常坑我

    条件查询 jpa应该继承JpaSpecificationExecutor 5/31 java基础疯狂java...

  • Java笔记

    Java基础 Java面试通关要点 1.面向对象的特征 封装 继承 多态 封装继承多态 2.final,final...

  • Android面试

    JAVA 基础 java的特点 (OOP),封装、继承、多态 ==、equals、hashCode的作用,区别 什...

网友评论

      本文标题:Java基础 继承

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