面向对象三大修饰符
Final
含义:最终的
可以修饰:
(1)类:
特点:不能被继承
这种类被称为最终类
(2)变量
特点:值不能被修改,只能赋值一次
这种变量称为常量
(3) 属性
特点:必须在声明时赋值,而且不能被修改
这种属性称为常量
(4)方法
特点:不能被重写
Static
含义:静态的,公共的
可以修饰:
(1)属性:
特点:
属于该类所有对象,其中一个对象对其修改,其他该类对象的该属性也将被修改
可以使用对象名.属性名进行调用,也可以使用类名.属性名进行调用(类名.属性名最常用)
(2) 方法
特点:
1,可以使用类名调用,也可以使用对象名调用
2,静态方法中不能使用this,super关键字
3,静态方法中不能直接使用本类或父类非静态的属性与方法
(3) 代码块(了解):
static修饰的代码块称为静态代码块,只在该类被加载时生效,Java中一个类只加载一次所以静态代码块也只会执行一次
特点:
调用时机,该类被加载时
静态代码块只会执行一次
类加载时机:
1,第一次创建该类对象时
2,使用类名调用静态属性或静态方法时
3,反射机制操作该类属性,方法,或创建该类对象
(4)成员内部类
Abstract:
含义:抽象的(主要用于接口)
可以修饰:
(1)方法(我知道有旦不知道怎么写)
语法:
访问权限修饰符 abstract 返回值值类型 方法名([形参列表]);
特点:
有抽象方法的类,一定是抽象类(抽象方法要放在抽象类中)
(2)类
语法:
访问权限修饰符 abstract class 类名{
属性
方法
构造
代码块
}
特点:
不能直接创建对象
抽象类不一定有抽象方法
子类继承与抽象类,要么重写所有抽象方法,要么自己也是抽象类
间接创建抽象类对象:可以创建子类对象然后子类对象转换成父类对象就可以创建抽象类对象.
代码块:
语法:{}
调用时机:
每次创建该类对象时,执行一遍.
特点:
构造函数之前执行
练习:
统计一个类创建对象的个数
定义位置:
类中,方法外
接口
含义:
微观:功能
宏观:规则
优点:
灵活,一个类可以实现多个接口(多实现)
使用步骤:
1,定义接口
2,使用接口
定义接口
语法:
访问权限修饰符 interface 接口名{
公共静态常量(public static final)
公共静态方法(public static)
公共抽象方法(public abstract)
default修饰的方法(注意:JDK1.8时出现的,不被市场认可)
}
注意:
接口中的属性默认使用public static final修饰
接口中不能定义构造函数,接口不能直接创建对象
接口中不能定义普通方法
接口中可以定义公共静态方法
接口中的抽象方法,默认使用public abstract修饰
接口的使用:
接口使用接口:多继承
语法:
访问权限修饰符 interface 子接口名 extends 父接口名1,父接口名2,...{
}
注意:
可以继承父接口的公共静态常量
不能继承父接口的公共静态方法
可以继承父接口的抽象方法
可以继承父接口default修饰的方法
类使用接口:多实现
语法:
访问权限修饰符 class 子类名 extends 父类名 implements 父接口名1,父接口名2,...{
}
接口与抽象类的区别
1,接口可以多实现,抽象类只能单继承
2,接口中不能定义构造函数,抽象类可以定义构造函数
3,接口中定义的内容只能是公共的,抽象类没有约束
4,接口中只能定义公共静态常量,抽象类没有要求
5,接口中不能定义普通方法,抽象类可以定义
6,接口中可以定义default修饰的方法,抽象类不能定义default修饰的方法