您的位置:首页 > 编程语言 > Java开发

Java基础语法之接口

2017-07-26 19:02 337 查看

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 修饰的变量,就是常量
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 继承