继承-权限-super-final-多态-组合

权限修饰符

    内容
        public
        protected
        default(不写就是它)
        private
    作用 : 
        修饰类    只可以 public default
        修饰方法
        修饰属性

父类的属性 方法 子类都能拿到吗  ?
    可以
    虽然有权限的限制 , 但是不妨碍子类继承到 , 只是子类继承到了之后 没有权限使用
    原因如下

父类 子类 构造器的执行顺序 

当 new 一个类时 , 会先创建其父类的对象 先执行其父类的构造器  默认调用无参构造器, 
    如果父类还有父类 , 那么先创建父类的父类 先执行父类的父类的构造器    直至 Object
    // 父类对象作为 子类对象的内部对象存在  
    
    因此 所有类最好有一个公共的无参构造器 
    因为 其子类对象创建时 会默认的调用它的无参构造器 (除非另行指明有参的构造器)

父类 子类内存图解

super 关键字

    super.属性名  这是主动向上追溯 , 使用父类的 属性   
                在子类和父类有同名属性时会这么用  
    super.方法名 这是主动向上追溯 ,使用父类的方法 
                在子类和父类有同名方法时会这么用            
    super([实参]) 这是引用父类构造器
        如果在子类的构造器中 不去显示引用父类构造器 , 那么默认引用无参构造器
        如果要引用有参的构造器  , 那么可以 super(实参) 来引用
        
        super 在构造器中 必须位于第一行   所以 super this 在构造器中不能共存

注意 :  super 不能出现在 static 成员里
父类 子类如果定义相同的属性  该如何  ?
    父类和子类可以相同的属性
    如果 子类类型存储子类对象  , 那么使用的是子类的属性
    如果 父类类型存储子类对象  , 那么使用的是父类的属性
    以上 称为 静态绑定   属性是静态绑定的 -> 你的类型是谁的  用的就是谁的  
    
    父类和子类有相同的属性  在子类中  , 优先使用子类的属性
    使用 super.属性名 可以使用父类的属性  
    调用父类的 get  set 方法 , 修改的父类的属性  
    继承中  父类无法得到子类的东西   
    
    综上所述 : 
        不要定义相同的属性    太麻烦

重写

        要求:
            1. 权限修饰符  大于等于父类的权限修饰符
            2. 返回值类型     要和父类一致
                    基本数据类型        完全和父类方法一致 
                    引用数据类型        小于等于父类的返回值类型
        
            3. 方法抛出的异常  必须小于等于父类方法抛出的异常  (异常)
父类 和 子类有同样的方法  , 在子类的使用中  ,优先使用谁的 ?
        优先使用子类的方法
        使用 super.方法 可以用父类的方法
 
    父类和子类都有同样的方法 , 子类类型 存储 子类对象  , 调用的方法是 子类 的方法
    父类和子类都有同样的方法 , 父类类型 存储 子类对象  , 调用的方法是 子类 的方法
    在执行时 会确定这个对象的实际类型 , 按照实际类型来执行方法 (实际执行 默认执行自己的)
    以上叫做 动态绑定
    
    动态绑定  仅限于 非静态方法 。

静态方法 仍然是 静态绑定 , 如果对象被父类变量存储  那么执行父类的静态方法

final 关键字

    final 最终的 不变的 , 它是修饰符 , 它修饰的成员 都是最终的不变的 .   
    作用 : 
        1. 修饰类 最终的类
                 该类无法被继承   例如 String     
        2. 修饰方法 最终的方法
                 该方法无法被重写     
        3. 修饰属性     
                该属性只要值确定了 那么值永不可变
                该属性又被称为 常量 
                
                final 修饰的属性必须在声明时就赋值
                否则 , 必须在每个构造器中 都对其进行赋值 
                一定要保证 final 修饰的属性 在对象创建之后必定有值 
        
        4. 修饰局部变量
                只要值确定了 那么值永不可变 也叫做常量

多态

 一种指令 多种状态

多态发生的三个基石
    1. 必须发生继承关系
    2. 必须有方法的重写  
    3. 父类引用指向子类对象  : 父类型的变量 存储的子类的对象  -- 实际执行的子类重写后的方法

组合 

    可以被称为 面向对象的第四大特性

就是相当于表的外键,关联另一张表

 

大数据学习--day10(继承-权限-super-final-多态-组合)的更多相关文章

  1. 大数据学习笔记——Java篇之集合框架(ArrayList)

    Java集合框架学习笔记 1. Java集合框架中各接口或子类的继承以及实现关系图: 2. 数组和集合类的区别整理: 数组: 1. 长度是固定的 2. 既可以存放基本数据类型又可以存放引用数据类型 3 ...

  2. java 与大数据学习较好的网站

    C# C#中 Thread,Task,Async/Await,IAsyncResult 的那些事儿!https://www.cnblogs.com/doforfuture/p/6293926.html ...

  3. 大数据学习笔记——Hadoop编程实战之HDFS

    HDFS基本API的应用(包含IDEA的基本设置) 在上一篇博客中,本人详细地整理了如何从0搭建一个HA模式下的分布式Hadoop平台,那么,在上一篇的基础上,我们终于可以进行编程实操了,同样,在编程 ...

  4. 大数据学习系列之四 ----- Hadoop+Hive环境搭建图文详解(单机)

    引言 在大数据学习系列之一 ----- Hadoop环境搭建(单机) 成功的搭建了Hadoop的环境,在大数据学习系列之二 ----- HBase环境搭建(单机)成功搭建了HBase的环境以及相关使用 ...

  5. 大数据学习系列之五 ----- Hive整合HBase图文详解

    引言 在上一篇 大数据学习系列之四 ----- Hadoop+Hive环境搭建图文详解(单机) 和之前的大数据学习系列之二 ----- HBase环境搭建(单机) 中成功搭建了Hive和HBase的环 ...

  6. 大数据学习系列之六 ----- Hadoop+Spark环境搭建

    引言 在上一篇中 大数据学习系列之五 ----- Hive整合HBase图文详解 : http://www.panchengming.com/2017/12/18/pancm62/ 中使用Hive整合 ...

  7. 大数据学习系列之七 ----- Hadoop+Spark+Zookeeper+HBase+Hive集群搭建 图文详解

    引言 在之前的大数据学习系列中,搭建了Hadoop+Spark+HBase+Hive 环境以及一些测试.其实要说的话,我开始学习大数据的时候,搭建的就是集群,并不是单机模式和伪分布式.至于为什么先写单 ...

  8. 大数据学习之Linux进阶02

    大数据学习之Linux进阶 1-> 配置IP 1)修改配置文件 vi /sysconfig/network-scripts/ifcfg-eno16777736 2)注释掉dhcp #BOOTPR ...

  9. 大数据学习系列之—HBASE

    hadoop生态系统 zookeeper负责协调 hbase必须依赖zookeeper flume 日志工具 sqoop 负责 hdfs dbms 数据转换 数据到关系型数据库转换 大数据学习群119 ...

随机推荐

  1. maven学习(六)依赖、聚合、继承

    先说一下概念(个人理解的,有问题请留言): 依赖:我要盖一座房子,就需要很多的砖,这些专就是盖房子的一个依赖.我要跑一个maven项目,需要各种各样的功能,功能实现的jar包和插件就是我的依赖. 聚合 ...

  2. Android学习——Service(二)

    今天来介绍Service的第二种使用方式,Bind方式 Bind方式启动服务 Bind方式和Start方式启动很类似,都是通过Intent来启动,不同的是,Bind方式需要传入三个参数,如下: Int ...

  3. Python文件夹与文件的操作 ZZ

    最近在写的程序频繁地与文件操作打交道,这块比较弱,还好在百度上找到一篇不错的文章,这是原文传送门,我对原文稍做了些改动. 有关文件夹与文件的查找,删除等功能 在 os 模块中实现.使用时需先导入这个模 ...

  4. Service Discovery in WCF 4.0 – Part 1 z

    Service Discovery in WCF 4.0 – Part 1 When designing a service oriented architecture (SOA) system, t ...

  5. lua-excel助手

    excel是我们工作及生活当中不可或缺的东西,好吧,我是一个游戏程序员,数值哥哥肯定会给我些表格的.回归正题,为什么需要做这个封装? 为什么需要这个项目,因为我们需要使用程序进行自动化操作 VBA我们 ...

  6. macbook pro 2016 2017 15寸 雷电3 外接显卡 epu 简单教程(不修改UEFI)

    雷电3外接显卡效果还不错,但是除了akitio node 其他厂家并不会维护自己的固件来适配新机型,我自己买的mbp 2016 15''就出现了和AORUS Gaming Box 1070不兼容的问题 ...

  7. XAMPP中Apache因为端口原因不能启动的解决方法

    在开启XAMPP的Apache时报出如下错误信息: 9:08:14 PM [Apache] Error: Apache shutdown unexpectedly.9:08:14 PM [Apache ...

  8. su

    参数选项:-,-l,--login 切换用户的同时,将用户的家目录.系统环境变量等重新按切换后的用户初始化.-c 向shell传递单个命令,仅希望在某个用户下执行命令,而不用直接切换到该用户下来操作. ...

  9. C#配置IIS搭建网站的工具类

    public class IISWorker { public static string HostName = "localhost"; /// <summary> ...

  10. Github注册

    官网:https://github.com/ sign in : 登录. sign up: 注册. 注意邮箱不可以随便乱填,邮箱用于激活账号和找回密码. 由于github的服务器在国外,访问比较慢,需 ...