Java面向对象的三大特征--------继承

1.  继承的定义:

                        子类继承于父类,父类又叫基类或者超类,在父类中定义共有的属性和方法;子类又叫派生类,子类中定义特有的属性和方法。

2.  继承的实现:

                        通过extends关键字来实现继承,如:

public class Animal{ //父类是 Animal

}
public class Cat extends Animal{ //子类是 Cat,继承于Animal类

}

3.  访问控制权限:

                         (1).  public:表示公共的,其修饰的类,方法,属性等在整个项目中都能够访问的到。

                         (2).  protected:表示受保护的,其修饰的类,方法,属性等可以被同包的子类或非子类访问,也可以被跨包的子类访问。因此我们在定义父类属性是可以使用protected修饰。

                         (3).  默认的:其修饰的类,方法,属性等可以被同包的子类或非子类访问。

                         (4).  private:表示私有的,其修饰的类,方法,属性等只能在自己类中使用。

4.  继承的特点:

                      (1).  在继承关系中,子类比父类更加强大,父类可以做的事,子类都可以做。

                      (2).  在继承关系中,子类默认会继承父类中的所有公共的成员( 构造方法除外 ),如果父类中的一些成员不想被子类继承,则可以用private来修饰这些成员。

                      (3).  在继承关系中,父类的构造方法是不可以被子类继承的。

5.  super关键字:

                        super关键字可以用来调用属性,方法和构造方法。

                                        (1).  " super . 属性 ":表示在子类中调用父类的属性。 

                                        (2).  " super . 方法名( [ 参数列表 ] ) ":表示在子类中调用父类的方法。

                                        (3).  " super( ) ":表示在子类中调用父类的无参构造方法。

                                        (4).  " super( [ 参数列表 ] ) ":表示在子类中调用父类的有参构造方法。

                        使用super( )或super( [ 参数列表 ] )语句调用父类的构造方法时,当创建子类对象的时候,默认会调用父类的无参构造方法。

                        在构造方法中使用super( )或super( [ 参数列表 ] )语句时,该语句必须位于第一行。当构造方法相互调用时,this和super关键字只能出现一个。

 

 6.  实例化子类对象时的访问顺序:

        实例化子类对象时的访问顺序遵循三个原则:父类优先,静态优先,属性优先。

        实例化子类对象时的访问顺序:(1).  父类静态属性。

                                                          (2).  父类静态代码块。

                                                          (3).   子类静态属性。

                                                          (4).   子类静态代码块。

                                                          (5).   父类普通属性。

                                                          (6).   父类构造代码块。

                                                          (7).   父类构造方法。

                                                          (8).   子类普通属性。

                                                          (9).   子类构造代码块

                                                          (10).   子类构造方法

        注意:其中普通属性和构造代码块谁在前就会先执行谁;只是我们习惯先写属性再写代码块。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值