继承

来源:互联网 发布:木工雕刻机编程软件 编辑:程序博客网 时间:2024/06/01 10:22







什么是继承关系:  现有父类,加以拓展

     可以是基于某个父类对对象的定义加以拓展,而产生新的子类,子类可以继承父类原来的某些定义,也可以增加
原来父类没有的定义,或者覆写父类中的某些特性.


从面向对象来说:继承是从一般到特殊的关系,是一种"is a"的关系,即子类是对父类的拓展,是一种特殊的父类,
比如:狗是动物的一种特殊情况,狗属于动物. 

--------------------------------------------------------------------------
在java语言中,存在多个类的时候,我们使用extends


语法格式:在定义子类的时候,来表明自己自己需要拓展哪一个类,
public class 子类类名 extends  父类类名 
{
   编写自己特有 的状态和方法


}




-----------------------------------------------------
在java中,类和类之间的继承关系值允许单继承,不允许多继承
也就是说一个类A,只能有一个直接的父类,不能同时出现类A同时继承
于类B类C.
      但是在 java中允许多重继承,
   动物有卵生动物和胎生动物之分,胎生动物有老虎,老虎又分华南虎,东北虎等



-------------------------------------------
在java中除了Object类之外,每个类都有一个直接的类
比如: class Student  extends Person{}
我们就说此时Student的直接父类是Person 
问题:class Person{ }, 此时Person的父类又是谁?
Object类是java语言的根类(老祖宗,任何类都是Object的子类)

----------------------------------------------------------------------------------------
继承关系的作用:
    1);解决了代码的重复问题

   2):真正的作用,表示一个体系.

=========================================================================

先写父类还是先写子类
    一般的,我们开发工程中先编写多个自定义类,写完之后,发现多个类之间存在多个代码,此时可以抽去出一个父类,
我们以后做开发,都是基于框架/组件来做的,我们是在别人的基础之上的,继续做开发
         好比别人提供了清水房,我们只需要在清水房的基础之上装修,就可以使用.
以后,我们定义新的类去继承于框架中/组件中提供的父类.


=============================================
子类继承父类之后,可以拥有父类的某一些状态和行为(子类复用了父类的功能或状态).
子类继承了父类的哪些成员(根据访问修饰符来判断):
   1):如果父类中的成员使用了public修饰,子类继承
  2):如果父类中的成员使用了protected修饰,子类也是继承,即使父类和子类不在同一个包,
  3):如果父类和子类在同一个包中,此时子类可以继承父类中缺省修饰符的成员.
  4) ,如果父类中的成员使用private修饰,子类打死都继承不到,因为private只能在本类中访问
  5),父类的构造器,子类也不能继承,因为构造器必须和类名相同




0 0
原创粉丝点击