第二章 继承

2.1 继承

1.概念:指一个对象直接使用另一对象的属性和方法,通过extends关键字来实现。

2.语法:修饰符 SubClass extends SuperClass{    //SubClass 子类     SuperClass  父类

                         // 类定义部分

              }

3.优点:避免了代码重复,方便日后代码的修改。

4.Java中只支持单继承,即每个类只能有一个直接父类。继承表达的是is  a的关系,或者说是一种特殊和一般的关   系,如Dog is a Pet。

5.子类可以从父类继承的"财产":public和protected修饰的属性和方法,无论子类和父类是否在同一                                                       个包里;

                                                    默认权限修饰符修饰的属性和方法,但子类和父类必须在同一个包                                                       里

   不能被继承的父类成员:private成员;

                                          子类与父类不在同包使用默认访问权限的成员;

                                          父类构造方法。

6.访问修饰符


2.2.1 子类重写父类的方法

1.重写与重载


位置方法名参数表返回值访问修饰符
override 重写子类相同相同相同或是其子类不能比父类更严格
overload 重载同类相同不相同无关无关

2.方法重写的要求:相同的方法名;

                            相同的参数列表;

                            返回值类型必须和被重写方法的返回值类型相同或是其子类;

                            不能缩小被重写方法的访问权限。

3.重载(overloading)和重载(overriding)的区别和练习: 

   重载涉及同一个类中的同名方法,要求方法名相同,参数列表不同,与返回值类型,访问修饰符无关;

   重写涉及的是子类和父类之间的同名方法,要求方法名相同,参数列表相同,与返回值类型相同,访问修饰符      不能严于父类。

4.继承的初始化顺序:父类属性——父类构造方法——子类属性——子类构造方法

2.3.1 抽象类和抽象方法

1.特点:(1)抽象类和抽象方法都通过abstract关键字来修饰。

             (2)抽象类不能实例化。

             (3)抽象方法只有方法声明。

2.抽象类中可以有构造方法吗?

  抽象类可以有构造方法,其构造方法可以被本类的其他构造方法调用,若此构造方法不是由private修饰,也可     以被本类的子类中的构造方法调用。

2.4.1 final的应用

用final修饰的方法不能被子类重写;

用final修饰的变量将变成常量,只能赋值一次。

阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页