JAVA面向对象2-静态;继承;重写
2017-11-24 20:12
176 查看
2.1 static用法:
2.1.2 static的应用:
* 1.static修饰属性(静态属性): * 加了static后,每个对象共享一份静态属性 * * 2.static修饰代码块: * 代码块: 只要实例化一个对象,则调用一次代码块的内容 * 静态代码块:与对象无关,属于类;无论实例化多少个对象,只加载一次 * * 3. static修饰方法: * 成员方法: 属于对象,通过对象.方法的方式调用 * 静态方法: 属于类,调用时推荐通过类名.方法的方式调用 * * 总结: 被static修饰过的,都属于类;在类加载的同时将static的引用加载出来;优先于对象先出来 **
2.1.1程序解析
先新建一个GirlFrinrd类 通过对变量非静态和静态对比查看代码的运行情况。第一个程序运行结果为:高圆圆 凤姐 第二个程序运行结果为:凤姐 凤姐 反应被static 修饰后 被Static修饰的变量变成对象共享的一个静态属性。
应用场景:
静态属性:作为状态值来使用(常用)静态方法:作为工具类来使用: 例如数组专家(常用)
静态代码块:初始化内容,且只初始一次的情况可放在静态代码块中;(暂时不常用)
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修饰类: 该类不能有子类
相关文章推荐
- java面向对象一:实现继承、重载、重写
- java学习之旅39--面向对象_12_继承_方法的重写
- JAVA面向对象之代码块 继承 方法的重写 super关键字与重写toString()方法介绍
- java 面向对象静态 继承
- java--面向对象之继承4(重写和重载)
- Java面向对象学习笔记 -- 3(继承、向上造型、重写)
- java学习之路 之 高级类特性1-面向对象特征之二:继承及方法重写(override)
- 黑马程序员——Java基础---面向对象代码块和继承和this和super和重写和重载和final
- 【好程序员特训营】- 路新艺-Java面向对象之继承和重写
- java面向对象基础课(继承,方法重写),图形界面=0912号
- JAVA面向对象基础:继承、变量隐藏、方法重写、包、修饰符、this、super
- java对象、静态、继承及super
- Java面向对象 Main函数 静态的应用 单例设计模式
- JAVA面向对象高级特性之继承(1)常见问题解答
- Java面向对象之继承
- java面向对象特性-封装、继承和多态
- 【java基础】--(2)面向对象特征之概念、封装、继承
- Java之面向对象例子(三) 多态,重写,重载,equals()方法和toString()方法的重写
- Java学习笔记9(面向对象二:this、继承、抽象类)
- java 继承与多态之面向对象