JAVA面向对象2-静态;继承;重写

2.1 static用法:

2.1.2 static的应用:

* 1.static修饰属性(静态属性): 
 * 加了static后,每个对象共享一份静态属性
 * 
 * 2.static修饰代码块:
 * 代码块: 只要实例化一个对象,则调用一次代码块的内容
 * 静态代码块:与对象无关,属于类;无论实例化多少个对象,只加载一次
 * 
 * 3. static修饰方法:
 * 成员方法: 属于对象,通过对象.方法的方式调用
 * 静态方法: 属于类,调用时推荐通过类名.方法的方式调用
 * 
 * 总结: 被static修饰过的,都属于类;在类加载的同时将static的引用加载出来;优先于对象先出来
**

2.1.1程序解析

先新建一个GirlFrinrd类 通过对变量非静态和静态对比查看代码的运行情况。
这里写图片描述

这里写图片描述

 第一个程序运行结果为:高圆圆 凤姐
 第二个程序运行结果为:凤姐 凤姐
 反应被static 修饰后 被Static修饰的变量变成对象共享的一个静态属性。

应用场景:

    1. 静态属性:作为状态值来使用(常用)
    1. 静态方法:作为工具类来使用: 例如数组专家(常用)
    1. 静态代码块:初始化内容,且只初始一次的情况可放在静态代码块中;(暂时不常用)

2.2 继承

2.2.1继承特性

   特性1:子类继承父类,拥有父类的属性和方法; 但是父类不能调子类的方法
        细节1:实例化过程,子类实例化对象后,先调用父类的构造:super()
        细节2:构造方法是否具有继承性---测试: 没有
        细节3: 支持多重继承;私有属性和方法不能被继承     
   特性2: 重写  
  1.使用场合:父类的方法不能满足子类需求时,子类可重写父类的方法    

2.2.2继承图解

父类与子类 概念图
这里写图片描述
父子类构造流程图
这里写图片描述

继承相关问题

  1. 分析子类实例化的过程
 * 分析现象: 先调用父类不带参构造;再调用子类构造
 *   原因:   子类构造的首句默认有super()
 *   super: 父类对象     this: 当前对象
 *   super():调父类不带参构造
 *   this(); 调当前类构造
 *   
 * 2. 构造方法是否具有继承性?   ---不具有继承性
 *   在子类不用写构造方法,可以直接调父类的构造  
 *   注意: 最好测带参构造,因为不带参构造会自动生成,不方便测
 *   
 * 3. java中是否支持多继承? 多重继承?   什么是多继承? 多重继承?  
 *   java不支持多继承、可以支持多重继承;也就是说不能有多个父亲;但是可以有父亲、有爷爷、、、
 *   
 * 4. 问题:
    1,继承,私有的方法和变量会不会被继承?   不会
    2,继承,构造方法会不会被继承?    不会

    继承的另一大特性: 重写  (狠重要)
    应用场景: 当父类的方法不能满足子类需求时,子类可以重写一个方法;
    注意: 子类重写的方法、参数完全与父类一致

    重写    VS  重载
    重载: 在一个类中,方法名相同、参数个数或类型不同
    重写: 在多个类中,方法名相同、参数个数和类型都完全一样

final继承

1.final修饰属性:变量变常量; 配合static使用---作为状态值
2.final修饰方法:方法不能被重写
3.final修饰类:  该类不能有子类    

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值