zoukankan      html  css  js  c++  java
  • java学习第七天

     

    目标

    1、  复合

    2、  继承

    3、  重写

    4、  Super

    5、  final

    一、类与类的关系

    参考: http://www.cnblogs.com/liuling/archive/2013/05/03/classrelation.html

    复合: has a

    1、  依赖: 形参、局部变量

    2、  关联: 属性

    3、  聚合: 属性整体与部分

    4、  组合: 属性具有生命周期的一致性的整体与部分

    继承: is  a   extends

    实现: implements

    二、继承: inheritance

    1、理解

    类: 对同种事物的抽象

    继承: 在类的基础上进一步的抽象,对同一批类的抽象

    延续和扩展父类的一切信息(包括私有)

    2、extends

    1)、被继承的类:父类 |基类|超类

    2)、继承的类: 子类|派生类

    注意: JAVA中仅支持单继承,一个子类仅有一个父类,一个父类可以存在多个子类。

    3、延续和扩展

    1)、延续: 

    直接使用复用父类的信息,前提存在访问权限

    2)、扩展

    a)、覆盖: 父类不满足子类的要求,按需覆盖

    b)、新增: 父类没有,子类按需添加

    4、单继承

    Java 只支持单继承,extends后面只能写一个类

    错误的写法:

    三、重写 override

    1、规则

    在子类中,对父类方法进行改写,规则如下:

    1)、方法签名相同: 方法名+形参

    2)、返回类型<=

    a)、基本类型|void 必须相同,否则编译错误

    b)、引用类型,<= 可以是子类

    c)、访问权限>=

    最简单方法的就是一样,拷贝父亲的方法,改变里面的内容即可。

    2、检查

    如何检查为重写呢?

    1)、使用注解@Override

    2)、在父类中定义方法,调用一下,调用到了,就是重写,调用不到就不是重写

    3、编译确定方法表

    编译看类型运行找对象,Java分编译期与运行期

    1)、编译期: 检查语法(确定调用的方法表)、适当优化

    确定调用的方法表–>就近最有原则

    2)、运行期在编译期的基础再运行代码,调用具体的对象的方法。

    3)、改变为:

    a、编译错误

    b、注意结果为: f print(int)

    如果使用子类对象调用方法,已经重写的调用重写的方法,否则调用父类的方法、新增方法。

    4、不会重写

    1)、属性不会重写

    2)、static  private不会重写

    3)、final 不能重写

    四、查看api

    api: application programming interface 字典,生成出来权限>=protected

    1、查找类

    1)、定为包名.类

    2)、查看继承体系、接口 -->延续父类的方法

    3)、通读第一段(前几句)说明,了解类的特点和作用

    2、查找构造器

    1)、能够找到构造器java.lang.Stringà根据构造器创建对象

    2)、找不到构造器如java.lang.Runtime或 java.lang.Math

     a)、此类为工具类,方法多数为静态方法,不用创建对象,说明类.调用方法即可

    b)、此类不允许外部创建对象,需要查找一个公共的静态方法,返回该类的实例

    3、查找方法

    1)、方法名 2)、方法签名 (形参) 3)、返回值类型  4)、是否为静态

    查看的描述(简短描述、详细描述、连蒙带猜式的看源码)

    4、Object

    老祖宗, equals()  hashcode() 和 toString() 被子类延续使用

    1)、equals() à比较相等

    equals在默认Object中就是比较地址是否相同。

    String的equals()进行重写比较地址

    2)、hashCode() à返回地址转换码

    3)、toString() à字符串的表现形式

    五、实例化过程

    先父类后子类先静态后成员

    六、super

    在子类中,指代父类对象。在子类的成员方法、构造器存在

    1、super. 属性  | 方法–>指代父类的方法|属性,必须存在访问权限。

    2、super([实参]) –>子类的构造器首行,显式的调用父类指定的构造器。默认的情况下 : 父类空构造。

    七、final

    final 最终的

    1、常量属性: 值一旦确定不可改变

    赋值:

    1)、声明的同时赋值

    2)、成员常量:

    3)、静态常量

    2、类:此类不能被继承

    3、方法: 此方法不能被重写

     

  • 相关阅读:
    解决vs code 内置终端,字体间隔过大问题。(linux centos7 ubuntu成功)
    安装Epson打印机但因lsb依赖错误而中断的驱动程序
    ubuntu 权限不够,解决办法,无法获得锁 /var/lib/dpkg/lock
    ubuntu 安装WPS
    GNU GRUB引导的默认启动项是ubuntu
    网络编程基础
    反射、特殊双下方法、单例模式
    异常处理
    封装、多态、类的约束、类的私有成员
    多继承、经典类与新式类、新式类的C3算法详解
  • 原文地址:https://www.cnblogs.com/yuyufeng/p/5317342.html
Copyright © 2011-2022 走看看