final关键字的使用
- final关键字在java中被称为完结器,表示最终的意思
- final能声明类、方法、属性:
- 使用final声明的类不能被继承。
- 使用final声明的方法不能被重写。
- 使用final声明的变量变成常量,常量是不可以被修改的。
抽象类
- 概念:包含一个抽象方法的类就是抽象类。
- 抽象方法:声明而未被实现的方法,抽象发放必须使用abstract关键字声明。
- 抽象类不能直接实例化,需要被子类继承,子类(如果不是抽象类)必须重写抽象类中的所有抽象方法。
- 定义格式:
abstract class className{
属性
方法
抽象方法
}
- 抽象类不能直接实例化,要通过其子类进行实例化。
代码示例:
package com.jikexueyuan.fni;
abstract class Abs{
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
private int age;
public void tell() {
}
//抽象方法
public abstract void say();
public abstract void print();
}
class AbsDemo extends Abs{
public void say() {
}
public void print() {
}
}
public class AbsDemo01 {
public static void main(String[] args) {
//Abs abs = new Abs();
AbsDemo absDemo = new AbsDemo();
absDemo.setAge(0);
}
}
接口
- 接口是Java中最重要的概念,接口可以理解为一种特殊的类,里面全部是有全局常量和公共的抽象方法组成
- 接口格式:
interface interfaceName{
全局常量
抽象方法
}
- 接口的实现必须通过子类,使用关键字implements,而且接口是可以多实现的。
- 一个子类可以同时继承抽象类和实现接口。
- 一个接口不能继承一个抽象类,但是却可以通过extends关键字同时继承多个接口,实现接口的多继承。
package com.jikexueyuan.fni;
interface Inter1{
public static final int AGE = 100;//全局常量的声明
public abstract void tell();
}
interface Inter2{
public abstract void say();
}
abstract class Abs1{
public abstract void print();
}
class A extends Abs1 implements Inter1,Inter2{//接口的多实现
@Override
public void tell() {
// TODO Auto-generated method stub
}
@Override
public void say() {
// TODO Auto-generated method stub
}
@Override
//同时接口的多实现的情况了继承了抽象类
public void print() {
// TODO Auto-generated method stub
}
}
//一个接口不能继承一个抽象类,但是却可以通过extends关键字同时继承多个接口,实现接口的多继承。
interface Inter3 extends Inter2,Inter1{
}
public class InterDemo01 {
public static void main(String[] args) {
// TODO Auto-generated method stub
A a = new A();
a.tell();
a.print();
System.out.print(Inter1.AGE);
}
}