Welcome to Deng The Blog

语法

修饰符 子类 extends 父类{

         //类定义部分

}

继承是面向对象的三大特特之一,Java只支持单继承。继承表达 is a 的关系。

子类可以从父类继承到哪些财产?

  1. 继承public和protected修饰的属性和方法,无论两者是否位于同一个包当找中.
  2. 继承默认权限修饰符的属性和方法,必须同包
  3. 无法继承private修饰的属性和方法.
  4. 无法继承父类的构造函数.

在Java中访问修饰符的访问权限

访问修饰符

本地

同包

子类

其他

Private

 

 

 

 

默认

   

 

 

Protected

     

 

Public

       

重写和继承关系中的构造函数

子类重写父类方法

定义

         如果从父类继承的方法不能满足子类的需求,则在子类中可以对父类的同名方法进行重   写 (覆盖),以符合要求,称为重写

方法重写的要求

  1. 重写方法和被重写方法必须具有相同的方法名
  2. 重写方法和被重写方法必须具有相同的参数列表
  3. 重写方法和被重写方法必须返回值类型必须相同,或者是其子类
  4. 重写方法不能缩小被重写方法的访问权限
    1. Super代表对当前对象的直接父类对象的默认引用
    2. Super必须出现再子类(子类的方法或构造函数)中,而不是其他位置
    3. 可以访问父类成员(可被继承的)
    4. 访问父类构造函数必须在子类构造函数的第一条语句
    5. 子类没有通过super显示调用父类的有参构造函数,也没有通过this显示调用自身的其他构造函数,则系统默认先调用父类的无参构造函数。
    6. 子类构造方法中没有使用super显示调用父类的有参构造函数,则执行父类相应的构造方法,不执行父类的无参构造方法
    7. 子类的构造方法中通过this显示调用自身的构造函数,则在相应的构造方法中应用以上两条规则
    8. 存在多级继承关系,在创建子类对象时,以上规则会多次向更高一次父类应用。一直到执行顶级父类object类的无参构造函数为止
    9. 通过abstract关键字修饰
    10. 抽象类不能被实例化。抽象类可以没有、有一个、多个或者全部都是抽象方法
    11. 抽象方法没有方法体,只有方法声明。抽象方法必须被子类继承,否则该子类也为抽象类
    12. 用fianl修饰类,该类不能被继承
    13. 用fianl修饰方法,该方法不能被重写
    14. 用fianl修饰变量(成员或者局部变量)都称为常量,只能赋值一次

Super关键字

继承条件下构造方法被调用的规则

抽象类

抽象类和抽象方法

抽象类和抽象方法的特点

Fianl修饰符

例:

Final Dog dog = new Dog(“偶偶”);

dog.name = “美美”;

dog = new Dog(“丫丫”);

错误点:

dog = new Dog(“丫丫”);    -------被final修饰的对象不能重新赋值,等于修改了引用的内存地址.

posted on 2017-09-27 12:17  昨夜星辰**  阅读(186)  评论(0编辑  收藏  举报