第三章.java的面向过程和面向对象的设计思想(5)——接口, final关键字

1.接口

1.1简述:接口与抽象类相似,可看做一个更彻底的抽象类,二者都是位于顶层,未被实现接口只是起到了一个设计功能的作用

定义形式:

//定义一个接口
public inplements 接口名{
}
//定义一个类实现一个接口
public class 类名 interface 接口名{
}
//定义一个接口继承一个接口
public inplements 接口名 extends 接口名2

规定: 接口之中默认抽象方法的修饰符为 public abstract;

默认成员变量的修饰符为 public final,因此此成员变量被称为静态常量

在jdk8之后,允许在接口中定义静态成员方法和默认方法

public interface  Aniamls {
    int num=10;//默认成员变量类型为静态常量
    void eat();
    //静态方法只能同过接口名调用
    public static void textstatic(){
        System.out.println("textstatic");
    }
    //默认方法只能同过子类调用
    public default void moren(){
        System.out.println("moren");
    }
}

静态成员方法通过接口名调用

默认方法通过子类或者子类创建的对象调用

 public static void main(String[] args) {
       Aniamls animal=new Animals();
//如果传过来的animals不是Dog类,则animals instanceof Dog返回false,反之返回true
        if(animals instanceof Dog){
        Dog dog=(Dog)animal;
//强制转换将父类对象animals转化为子类对象
        dog.(Dog类独有的方法);
}

 特性:

接口不能创建对象,无构造方法(与抽象类不同之处)

接口表示一种抽象,需要其他类来实现;

当类实现接口时,要么将类改为抽象类,要么实现抽象方法

当接口继承接口时,不需要实现抽象方法

类与接口相互关系:

一个接口可以继承多个接口

一个类可以继承多个接口

一个类只能继承一个类

2.final关键字

final关键字可以修饰属性方法,方法,类

特点:

1)final修饰类时,该类不能被任何类继承

例如,String默认修饰符为final,不能被任何类继承

public class Final extends String {
//String会发生报错,无法被继承
}

2)final修饰方法时,方法无法被重写

public class Final {
 final void method(){

    }
}

public class Car extends Final {
//下方的public void method(){}会发生报错,无法完成重写
public void method(){

    }
}

3)final修饰的变量,在定义时需要对其赋值,复制之后将无法改变变量的值

如果定义时未赋值,则在构造方法中必须要对其赋值。

public class Final {
        final int num=10;
        final int age;
        public Final(int age){
            this.age=11;
        }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值