J5 抽象类和接口
1.final关键字
1.1概念
- final关键字在java中被称为完结器,表示最终的意思
- final能声明类,方法,属性
1.2注意
-
使用final声明的类不能被继承,类似被打上final标签的类就是太监,不能有子孙后代
-
使用final声明的方法不能被重写
-
使用final声明的变量变成常量,常量是不可以被修改的,常量应该大写(编写规范)
2.抽象类
2.1抽象类概念
- 包含一个抽象方法的类就是抽象类
抽象方法:声明却未被实现的方法,抽象方法必须使用
abstract关键字声明
-
抽象类被子类继承,子类(如果不是抽象类)必须重写抽象类中的所有抽象方法
-
抽象类不能直接实例化,要通过其子类进行实例化
-
定义格式
abstract class className{
属性;
方法;
抽象方法;
}
- 示例
package com.hanqi.java;
//抽象类
abstract class Abs{
private int age;
public void tell() {
}
public abstract void say(); //抽象方法
}
class AbsDemo extends Abs{
//实现父类抽象方法
public void say() {
}
}
public class test02 {
public static void main(String[] args) {
// 子类实例化抽象方法
AbsDemo a = new AbsDemo();
a.say();
}
}
3.java接口
3.1概念
- 接口是java中最重要的概念,接口可以理解为一种特殊的类,里面全部是全局变量和公共的抽象方法所组成
- 接口的实现也必须通过子类,使用
implements,而接口是可以多实现的 - 接口格式
interface interfaceName{
全局变量;
抽象方法;
}
- 一个子类可以同时继承抽象类和实现接口,例如
package com.hanqi.java;
interface Inter{
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 Inter,Inter2{
public void tell() {
}
public void say() {
}
public void print() {
}
}
public class test03 {
public static void main(String[] args) {
// TODO 自动生成的方法存根
A a = new A();
a.tell();
a.say();
a.print();
System.out.println(Inter.AGE); //全局常量使用其自身类调用
}
}
- 一个接口不能继承一个抽象类,但是却可以通过extends关键字同时继承多个接口,实现接口的多继承,例如
package com.hanqi.java;
interface Inter{
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 Inter,Inter2{
public void tell() {
}
public void say() {
}
public void print() {
}
}
interface Inter3 extends Inter, Inter2{
}
public class test03 {
public static void main(String[] args) {
// TODO 自动生成的方法存根
A a = new A();
a.tell();
a.say();
a.print();
System.out.println(Inter.AGE); //全局常量使用其自身类调用
}
}

浙公网安备 33010602011771号