面向对象之final_static_接口
关键字:final
只能在成员定义前修饰final使用
-
在类中修改的final的话,就会不能继承
-
在成员方法中,不能重写,但是可以使用
-
在局部变量中,可以赋初始值,但是不能再次赋值,一旦 赋值就不能继续赋值了
-
在引用类型中,中可以给 final(final new Dog a =new Dog();),该引用的地址值不能发生改变,否则会报错
-
在全局变量中,final修饰成员变量,必须在创建对象之前必须有值;第一种你可以在创建时定义,第二种就是你可以在构造器中定义。
注意:final关键字和abstract是冲突的。
关键字:static (类变量\静态变量)
解释:可以被成员变量和成员方法,修饰,如果被修饰了,他不属于对象,1他是被大家共享的(静态方法区);
- 静态变量:可以被成员变量和成员方法,修饰,如果被修饰了,他不属于对象,1他是被大家共享的(静态方法区);
- 静态方法:可以不用创建对象,(直接类.方法名)调用
- 静态类:(一般是内部类使用)
静态和静态可以访问,非静态可以访问非静态
非静态可以访问静态(晚),静态不可以访问非静态(早)另一个比较出现的慢(晚)
调用格式:
静态的成员变量:
对象名.静态的成员变量[可以访问,但是不要 这样写];
类名.静态成员变量
静态的成员方法;
对象名.方法名:
接口
简介:
什么是接口;
接口是:引用类型,接口是方法的集合(主要写方法,也可以写其他的方法)
定义格式:
定义类:class
定义接口:interface
定义枚举:enum
定义注解;@interface(Annmon)
格式:
public interface 接口名字{
//抽象方法【JDK7】
//默认方法和静态方法【JDK8】
//私有方法和静态方法【JDK9】
}
接口的使用:
1.和抽象类一样,但是他是不能创建对象
2.接口是作为父接口使用的,用于被其他的类"实现"的
3.继承的关键字是:extends,而实现的关键字是:implements使用方式:
public class 实现类 implements 接口名字{
//实现的方法;
}
可以使用abstract,但是默认可以不写,我们可以直接将用
参数类型 方法名();(必须实现方法)
如果用defualt的话,(可以不用实现方法)
如果用static的话,没有重写的说法(他是通过所在类,或者所在方法直接类.方法名调用的)
接口的优先级:
可以在继承一个父类,可以实现多个接口(可以同时存在的)
接口的多继承
类与类之间的:单继承
类与接口之间的:多实现
接口与接口之间:可以多继承
接口的特点:
1.接口中,无法定义成员变量,但是可以定义常量(public static final 参数类型,常量名(大写)=常量值)
public static final在接口中可以省略
2.没有构造方法,不能创建对象
3.接口中,没有静态代码块(static{})