华凌666 发表于 2017-5-27 14:12

[java]继承关系

/*
什么是继承关系:
基于某个父类对对象的定义加以拓展,而产生新的子类定义,子类可以继承父类原来的某些定义,也可以增加原来父类所没有的定义,或者覆写父类中的某些特性。

从面向对象的角度上说:继承是一种从一般到特殊的关系,是一种“is a”的关系,即子类是对父类的拓展,是一种特殊的父类,比如:狗是动物的一种特殊情况,狗属于动物。
--------------------------------------------------------------------------
在Java语言中,存在多个类的时候,我们使用”extends”关键字来表示子类和父类之间的关系.
语法格式: 在定义子类的时候来表明自己需要拓展于哪一个父类.
publicclass子类类名    extends    父类类名
{
编写自己特有的状态和行为
}
--------------------------------------------------------------------------
在Java中,类和类之间的继承关系只允许单继承,不允许多继承.
也就是说一个类A,只能有一个直接的父类,不能出现类A同时继承于
类B和类C.
但是,Java中允许多重继承.
多重继承例子:
动物有胎生动物和卵生动物之分,胎生动物有老虎,老虎又分华南虎,
东北虎,孟加拉虎等。


--------------------------------------------------------------------------
在Java中除了Object类之外,每一个类都有一个直接的父类.
比如:class Student extends Person{}
我们就说此时Student的直接父类是Person.
问题: class Person{} ,此时Person的父类又是谁?
Object类是Java语言的根类(老祖宗,任何类都是Object的子类.)
classPerson{} 等价于 class Person extends Object{}
Object类要么是一个类直接父类,要么是一个类间接父类.
--------------------------------------------------------------------------
继承关系的作用:
1):解决了代码的重复问题.
2):真正的作用,表示出一个体系.
   
   
    */
   
    /*
先写父类还是先写子类:
一般的,我们在开发工程中先编写多个自定义类,写完之后,发现多个类之间存在共同的代码,此时可以抽去出一个父类.
我们以后做开发,都是基于框架/组件来做的,我们是在别人的基础之上,继续做开发.
好比,别人提供清水房,我们只需要在清水房的基础之上装修,就可以使用.
以后,我们定义新的类去继承于框架中/组件中提供的父类.
---------------------------------------------------------------------
子类继承父类之后,可以拥有父类的某一些状态和行为(子类复用了父类的功能或状态).
子类到底继承了父类的哪些成员(根据访问修饰符来判断):
1):如果父类中的成员使用public修饰,子类继承.
2):如果父类中的成员使用protected修饰,子类也继承,即使父类和子类不在同一个包中.
3):如果父类和子类在同一个包中,此时子类可有继承父类中 缺省修饰符的成员.
4):如果父类中的成员使用private修饰,子类打死都继承不到.因为private只能在本类中访问.
5):父类的构造器,子类也不能继承,因为构造器必须和当前的类名相同.

请注意:不要去背文字,立马写代码去证明.
   
    */
   
    class father
    {
      protected String name = "小华凌";//可以继承
      
    }
   
    class son extends father
    {
      
    }
   
public class inheritDemo
{
        public static void main(String[] args)
        {
      son s1 = new son();
      System.out.println( s1.name);//小华凌
      s1.name= "123";
      System.out.println(s1.name)

小平123 发表于 2017-5-28 16:41

热心回复刚学完
页: [1]
查看完整版本: [java]继承关系