zoukankan      html  css  js  c++  java
  • 第二章继承

    语法

    修饰符 子类 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修饰的对象不能重新赋值,等于修改了引用的内存地址.

  • 相关阅读:
    关于思考力
    2019第24周日
    提高收入的方法
    工作中的管理
    技术是解决问题的一种手段
    Django的事务性
    shell单引号与变量、双引号与变量、如何在多重引号里面取到shell变量的值?
    django外键以及主表和子表的相互查询
    django数据模型中 null=True 和 blank=True 有什么区别?
    Django静态文件的加载以及STATIC_URL、 STATIC_ROOT 、STATICFILES_DIRS的区别
  • 原文地址:https://www.cnblogs.com/invincibleDeng/p/7601106.html
Copyright © 2011-2022 走看看