献给小白的笔记day9

献给小白的笔记day9

1.1 final关键字

  • 被final关键字修饰的类,不能被继承
  • 被final关键字修饰的方法,不能被子类重写
  • 被final关键字修饰的变量,不能被赋值
  • final关键字不能和abstract关键字一起使用

1.2 接口

  • 定义格式

    修饰符 interface 接口 {
        // 自定义常量
        // 抽象方法
        // 默认方法(JDK8.0)
        // 静态方法(JDK8.0)
        // 私有方法(JDK9.0)
    }
    
  • 在Java 9+版本中,接口的内容可以有:
    
    1. 成员变量其实是常量,格式:
    [public] [static] [final] 数据类型 常量名称 = 数据值;
    注意:
    	常量必须进行赋值,而且一旦赋值不能改变。
    	常量名称完全大写,用下划线进行分隔。
    
    2. 接口中最重要的就是抽象方法,格式:
    [public] [abstract] 返回值类型 方法名称(参数列表);
    注意:实现类必须覆盖重写接口所有的抽象方法,除非实现类是抽象类。
    
    3. 从Java 8开始,接口里允许定义默认方法,格式:
    [public] default 返回值类型 方法名称(参数列表) { 方法体 }
    注意:默认方法也可以被覆盖重写
    
    4. 从Java 8开始,接口里允许定义静态方法,格式:
    [public] static 返回值类型 方法名称(参数列表) { 方法体 }
    注意:应该通过接口名称进行调用,不能通过实现类对象调用接口静态方法
    
    5. 从Java 9开始,接口里允许定义私有方法,格式:
    普通私有方法:private 返回值类型 方法名称(参数列表) { 方法体 }
    静态私有方法:private static 返回值类型 方法名称(参数列表) { 方法体 }
    注意:private的方法只有接口自己才能调用,不能被实现类或别人使用。
    
    
  • 接口的注意事项:

    • 接口因为没有构造方法,不能实例化
    • 类和接口的关系
      • 类和类的关系:单继承
      • 类和接口的关系:多实现
      • 接口和接口的关系:多继承

1.3 多态

  • 多态:事物的多种形态
  • 编译时类型,对象声明时的类型
  • 运行时类型:对象在内存堆中的类型
  • 当编译时类型和运行时类型一致的时候,称之单态(事物的单一的状态) 例如 Student s= new Student();
  • 当编译类型和运行类型相同时,如Cat cat=new Cat();此时编译时声明的对象类型为Cat,运行时对象类型也为Cat,故而两种形态一致,所有被称为单态.
  • 当编译时类型和运行时类型不一致的时候,称之多态(事物的多种的状态)例如:Animal a = new Dog();
  • 当编译时的类型和运行时的类型不一致时,如Animal a=new Cat ();编译时声明的是Animal类型,运行时在内存堆new的确是Cat类型,故而两种类型不同,被称之为多态.
  • 多态的前提条件:
  • 存在继承关系的类型
  • 存在方法的重写,若无重写,不会报错,但是没有实际意义
  • 必须为父类new子类,也就是声明父类,new的是子类.
    • 存在继承关系或者实现关系
    • 要有方法重写(没有重写,不会报错,没有实际意义)
    • 父类的引用指向子类对象
  • 多态访问成员的特点:
  • 通过多态访问非成员方法
  • 通过多态形式访问的非成员方法,全部都是以父类中有的去访问,因为声明的是父类,虽然在内存堆new的是子类对象,但是因为声明类型故而只能访问父类中的元素.所有的访问数据必须以父类为准,如果访问的方法被子类所重写时,才会调用子类方法.
    • 通过多态的形式访问非成员方法,和以前的单态的使用结果一模一样
    • 通过多态的形式访问成员方法,先看父类中是否有这个方法
      • 如果有,执行子类重写后的方法
      • 如果没有,编译报错
  • 多态的好处:将父类的类型作为方法的形参,调用方法时,只需要将子类对象声明成为父类传入方法中即可
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值