static、接口、多态、内部类

static关键字

特点

  • 被static修饰的成员变量叫做静态成员变量\类变量

  • 被static修饰的成员变量会被该类的所有对象共享

  • 被static修饰的成员变量被该类的某个对象修改了,那么该类的所有对象使用的都是修改后的值

  • 方式一: 对象名.静态成员变量名 ---->不推荐

  • 方式二: 类名.静态成员变量名 ----->推荐

  • 被static修饰的成员方法叫做静态方法,可以使用类名直接调用

  • 静态方法中不能出现this关键字

  • 静态方法中只能直接访问静态成员变量和静态成员方法

  • 静态方法中不能直接访问非静态成员变量和非静态成员方法

  • 非静态方法中可以直接访问一切成员变量和成员方法

静态代码块

static {
    
}

  • 随着类的加载而执行,并且只执行一次

  • 类的加载: 第一次使用某个类的时候,类加载器就会把该类加载到内存中,只会加载一次

以后开发中static的应用

以后的项目中,通常会需要一些“全局变量”或者“全局的工具方法”,这些全局变量和方法,可以单独定义在一个类中,并声明为static(静态)的,可以很方便的通过类名访问

  • 接口也是一种引用数据类型,在接口中专门用来定义方法和常量

  • 定义一个接口需要使用interface关键字---->接口编译之后会产生class文件

  • 接口不能创建对象,只能被类实现(类似继承),实现接口的类叫做实现类\子类

  • 实现接口的类如果是普通类,就必须重写接口中所有的抽象方法,如果是抽象类,就可以不重写,也可以重写

实现接口

  • 概述:类和接口的关系就是实现关系,类似继承,使用implements关键字来实现接口

接口中成员的访问特点:
    常量: 主要是供接口名直接访问
    抽象方法: 就是供实现类重写的
    默认方法: 就是供实现类重写或者直接调用
    静态方法: 只供接口名直接访问
    私有方法: 只能在接口内部访问

子接口可以继承父接口中的常量,如果多个父接口中有相同的常量,那么子接口就不会继承这些相同的常量

 如果多个父接口中有相同的默认方法,那么子接口必须重写一次该默认方法

公有静态方法和私有方法不存在冲突,因为静态方法和私有方法不会被子接口继承

如果父接口和父类中有相同的抽象方法,子类必须重写一次

父接口中的静态方法不会被实现类继承,而父类中的静态方法是会被子类继承

多态

  • 多态是面向对象三大特征之一。

  • 多态指对于同一行为,对于不同的对象,具有不同的表现形式。在程序中,表示对同一方法,不同的对象有不同实现。

  • 实现多态的前提条件

    • 继承 或者 实现

    • 父类引用指向子类对象 或者 父接口引用指向实现类对象

    • 方法的重写(没有重写方法多态是没有意义的)

实现多态

  • 成员变量: 编译看左边(父类),运行看左边(父类)

  • 成员方法:

    • 非静态成员方法: 编译看左边(父类),运行看右边(子类)

    • 静态成员方法: 编译看左边(父类),运行看左边(父类)

多态的好处和弊端

  • 好处:

    • 可以将方法的参数定义为父类引用,使程序编写的更简单,提高程序的灵活性,扩展性

    • 案例参考多态的应用场景

  • 弊端:

    • 无法直接访问子类独有的成员变量和成员方法(因为多态时成员访问特点编译都是看左边(父类))

引用类型转换

向上转型: 子类类型向父类类型转换的过程叫做向上转型,这个过程是自动的

Fu f = new Zi();

向下转型: 父类类型的变量向子类类型转换的过程叫做向下转型,这个过程是强制的

Zi zi = (Zi)f;

避免转型异常

if(变量名 instanceof 数据类型){}
如果前面变量名指向的对象是属于后面数据类型,那么返回true,否则返回false

内部类的概述

  • 概述: 将一个类定义在另一个类的里面,里面的那个类就叫做内部类,外面的那个类就叫做外部类

  • 特点: 内部类是一个独立的类,在编译后,有自己独立的class文件,前面冠以:外部类名+$+内部类类名.class

匿名内部类

  • 本质其实就是一个继承了某个类的子类对象

  • 本质其实就是一个实现了某个接口的实现类对象

  • 使用场景

  • 如果想得到某个类的子类对象,就可以创建该类的匿名内部类

  • 如果想得到某个接口的实现类对象,就可以创建该接口的匿名内部类

引用类型使用小结

  • 引用类型作为方法的参数传递的是地址值

  • 引用类型作为方法的返回值返回的是地址值

  • 案例1

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值