Java基础语法之接口

interface 接口

定义一个接口
接口当中全部是抽象方法
1.8新特性,允许接口出现实现方法,必须用default修饰
接口可以继承接口
接口可以多继承interface Run2 extends Run,Serializable
接口中不允许出现属性(属性不能被抽象也不能被覆盖,因此接口中不能有属性)
接口中可以出现常量

interface Animal{
    private String name;//成员属性是不允许出现在接口中
    public final static String name = "龙先生";
    //上面没是在接口中定义一个常量,也可以简写成如下:
    String name = "龙先生";
    public abstract void eat();//只能存在这种方法
    void eat();//可以简写,JVM会为我们自动添加前面的修饰符
    public void run(){}//这种方法是不能存在的
    default void run(){逻辑代码;}//这种是在JDK1.8的新特性

覆盖和不覆盖的区别

覆盖的话,调用的是子类的方法
不覆盖调用的是父类中的方法
父类中可以定义逻辑,然后具体实现让子类去干(模板方法设计模式)

class Animal{
    public  void eat(){
        System.out.println("动物具有吃的能力");
    }
}
class Dog extends Animal{
    //下面的方法是覆盖了父类的方法,即重写
    public void eat(){
        System.out.println("狗是吃骨头的");
    }
}
class Test{
    public static void main(String[] args){
        //下面是引用的多态,如果子类没覆盖父类的方法
        //则会输出:动物具有吃的能力
        //否则输出:狗是吃骨头的
        Animal animal = new Dog();
        animal.eat();
    }
}

final关键字表示最终的,不允许修改的

用它来修饰变量,则变量不能被改变
用来修饰类,表示不能被继承
接口不能被final修饰,因为接口就是用来被实现的
final修饰的方法,不能被覆盖
final修饰的引用类型变量,只能保证地址不被覆盖,不能保证该对象的属性不被修改

final int a = 5;//此变量一经赋值,就不允许再改变
final class Animal //此类经final修饰,就不能被继承
public final void eat(){} //方法经final修饰否,不允许被覆盖和重写
final Animal a = new Animal(); //这个对象a经过final修饰后,它就不能再被 a = new Animal()了,或者把一个新对象赋值给他,但是它的成员属性可以改变
final interface Animal //final不能修饰接口

static关键字表示静态

加载和赋值的时间最早
销毁的时间最晚
只声明一次(唯一)

常量

final static 修饰的变量,就是常量

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值