final关键字
final关键字用于修饰类,成员变量,方法,局部变量;
final修饰的类,是不能被其他类继承的 java语言中提供了很多类,就是final修饰的,不能被继承
final修饰的方法也不能被子类重写
final修饰局部变量(包括形参)值不能被改变
package com.ffyc.javaoop.day6; public class A { /* final 修饰的成员变量有两种赋值方法 1.final float pi = 3.14f;在这个模版中,就将值给定,而且后面值不能被改变 2.final intcount;在类中定义时不能进行赋值操作,必须要在构造方法中进行初始化赋值操作 表示每一个对象中都有常量 */ static final float pi = 3.14f; final int count; public A(){ count = 0; } }
接口
例如:usb接口 连接串口 是一种标准规范 大小,传输数据......
接口--->规则规范 用来定义功能 更彻底的抽象 接口,抽象类--->定义,抽象
在实际复杂的程序设计中,上层一般都是”抽象的“,面向的是抽象进行编程
架构师定义接口,定义抽象类
业务程序员去对接口,抽象类进行实现
语法:
创建接口
package com.ffyc.javaoop.day6; /* interface修饰的是接口 接口中可以定义哪一些内容 jdk8之前 只能定义抽象方法和静态常量 jdk8之后 可以定义抽象方法和静态常量,还可以定义默认方法和静态方法 */ public interface MyInterface { int a = 10;//静态常量 void eat();//抽象方法 /* 默认方法,通过子类对象进行访问 */ public default void test1(){ System.out.println("default test1"); } /* 静态方法,通过接口名进行访问 */ public static void test2(){ System.out.println("Static test2"); } }
访问
package com.ffyc.javaoop.day6; public class Test { public static void main(String[] args) { /* 接口是更彻底(更纯粹的抽象),所有的接口也是不能被创建对象的,不能有成员变量,构造方法 成员方法是抽象的,默认的,静态的 设计接口也是为了让其他类继承实现的 */ MyInterface.test2();//接口名访问静态方法 System.out.println(MyInterface.a);//接口访问静态常量 }
接口与类之间关系
接口其实就是抽象,也是定义功能后 ,让其他类来实现
package com.ffyc.javaoop.day6; /* 类继承类 类 实现(implement)接口 要么重写接口中所有的抽象方法 要么将此类也声明为抽象类 public abstract class A implements MyInterface */ public class C implements MyInterface,Interface1{ @Override public void eat() { System.out.println("重写接口中抽象eat方法"); } @Override public void A() { } }
java中的接口可以继承多个接口
接口主要任务是拥有某种功能(方法)