Java关于final关键字和接口详解

文章详细介绍了Java中的final关键字,用于修饰类、方法、参数和属性,确保其不可被继承或修改。同时讲解了接口作为完全抽象类的概念,以及JDK8后接口的新特性,如静态方法和默认方法。使用interface关键字创建接口,并通过implements关键字实现接口的功能。文章强调了一个类可以实现多个接口,但必须实现接口中的所有抽象方法,否则需声明为抽象类,同时也说明了接口与实现类之间的多态性。
摘要由CSDN通过智能技术生成

final关键字

用于修饰类 ,方法,参数和属性

  • 类:不能被定义抽象类或是接口,不可被继承

  • 方法:子类里不可以重写

  • 参数:参数值在方法中不可被修改//有点类似C语言const关键字

  • 属性:定义时就必须直接赋值或者在构造方法中进行赋值,并且后期不能被修改

  • public final class A{
    	final int num=10;
        public final void Test( final int a){
            
        }
    }
    
    

接口(完全抽象的类)

  • 一种更为彻底的抽象,主要用来定义功能
  • JDK8后可以定义4种内容
  1. 静态常量
  2. 抽象方法
  3. 静态方法(JDK8后)
  4. 默认方法(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

一个类如果实现接口

  1. 要么实现所有方法
  2. 要么特此声明为抽象类
  • 实现类和接口之间也是可以有多态关系的
  • 用一个接口,表示一类拥有此功能的类

特性

  • 接口是隐式抽象的,主要是定义功能
  • 接口可以定义静态常量,抽象方法,静态方法,默认方法
  • 一个接口可以继承其他多个接口
  • 接口和抽象类一样,不能实例化对象
  • 接口是要被类实现的,一个接口可以被多个实现
  • 当类实现接口的时候.类要实现接口中所有的抽象方法,否则,该类必须声明为抽象的类
    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

一个类如果实现接口

  1. 要么实现所有方法
  2. 要么特此声明为抽象类
  • 实现类和接口之间也是可以有多态关系的
  • 用一个接口,表示一类拥有此功能的类

特性

  • 接口是隐式抽象的,主要是定义功能
  • 接口可以定义静态常量,抽象方法,静态方法,默认方法
  • 一个接口可以继承其他多个接口
  • 接口和抽象类一样,不能实例化对象
  • 接口是要被类实现的,一个接口可以被多个实现
  • 当类实现接口的时候.类要实现接口中所有的抽象方法,否则,该类必须声明为抽象的类
  • 接口与实现类之间存在多态性
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

崔渭阳

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值