final关键字
用于修饰类 ,方法,参数和属性
-
类:不能被定义抽象类或是接口,不可被继承
-
方法:子类里不可以重写
-
参数:参数值在方法中不可被修改//有点类似C语言const关键字
-
属性:定义时就必须直接赋值或者在构造方法中进行赋值,并且后期不能被修改
-
public final class A{ final int num=10; public final void Test( final int a){ } }
接口(完全抽象的类)
- 一种更为彻底的抽象,主要用来定义功能
- JDK8后可以定义4种内容
- 静态常量
- 抽象方法
- 静态方法(JDK8后)
- 默认方法(JDK8后)
接口不能被创建对象
interface关键字
使用interface关键字来实现接口的创建
public interface MyInterface {
int num=0;// 默认为public static int num=0;
void s();//默认为公共抽象方法即public abstract
}
public interface MyInterface extends A,B{
.......
}//一个接口可以继承多个接口
注:一个类只能继承一个类,间接继承多个类
一个类可以实现多个接口
一个接口可以继承多个接口
接口不可以构造方法
implements关键字
package day8.jk;
public class Test implements MyInterface {//implements关键字用来实现接口功能
@Override
public void Test() {
}
@Override
public void Test3() {
}
}
一个类可以实现多个接口(多个接口表示多个功能,一个类需要哪些功能就去实现哪些接口)
package day9.animal;
public interface Fly {
void Fly();
}
package day9.animal;
public interface Eat {
void eat();
}
public class Bird extends Animal implements Fly,Eat {
@Override
public void eat() {
}
@Override
public void Fly() {
}
}
}//Bird实现了Fly接口的功能和Eat接口功能且继承了Animal
一个类如果实现接口
- 要么实现所有方法
- 要么特此声明为抽象类
- 实现类和接口之间也是可以有多态关系的
- 用一个接口,表示一类拥有此功能的类
特性
- 接口是隐式抽象的,主要是定义功能
- 接口可以定义静态常量,抽象方法,静态方法,默认方法
- 一个接口可以继承其他多个接口
- 接口和抽象类一样,不能实例化对象
- 接口是要被类实现的,一个接口可以被多个实现
- 当类实现接口的时候.类要实现接口中所有的抽象方法,否则,该类必须声明为抽象的类
y8.jk;
public class Test implements MyInterface {//implements关键字用来实现接口功能
@Override
public void Test() {
}
@Override
public void Test3() {
}
}
**一个类可以实现多个接口(多个接口表示多个功能,一个类需要哪些功能就去实现哪些接口)**
```java
package day9.animal;
public interface Fly {
void Fly();
}
package day9.animal;
public interface Eat {
void eat();
}
public class Bird extends Animal implements Fly,Eat {
@Override
public void eat() {
}
@Override
public void Fly() {
}
}
}//Bird实现了Fly接口的功能和Eat接口功能且继承了Animal
一个类如果实现接口
- 要么实现所有方法
- 要么特此声明为抽象类
- 实现类和接口之间也是可以有多态关系的
- 用一个接口,表示一类拥有此功能的类
特性
- 接口是隐式抽象的,主要是定义功能
- 接口可以定义静态常量,抽象方法,静态方法,默认方法
- 一个接口可以继承其他多个接口
- 接口和抽象类一样,不能实例化对象
- 接口是要被类实现的,一个接口可以被多个实现
- 当类实现接口的时候.类要实现接口中所有的抽象方法,否则,该类必须声明为抽象的类
- 接口与实现类之间存在多态性