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_语法基础_定义规范的接口类型
- 2018/01/07JAVA 基础 / 接口与继承:对象转型的意义、instanceof的语法
- java8 Lambda表达式的新手上车指南(1)--基础语法和函数式接口
- JAVA基础语法、面向对象、了解java对象的生存周期(Object、修饰符、数组、枚举、接口、抽象类)
- Java基础语法<九> 接口与内部类
- Java基础语法----集合(1)collection接口、list接口
- java基础知识--接口语法细节
- java基础(2)-基础类型和语法(static、内部类、final、抽象类、接口、封装)(并将这些基础知识与java的三大特征关联(继承、多态、封装))
- Java基础学习笔记八 Java基础语法之接口和多态
- Java基础语法(二)----运算符和流程控制语句(之运算符)
- JAVA基础语法
- javaWed_03:js基础语法
- Java学习记录--java基础语法
- Java基础知识:接口
- Java私塾跟我学系列――JAVA篇 第二章 基础语法
- java基础语法(五)
- Java语法基础
- Java基础语法(4)
- Java基础视频教程-基础语法2
- Java基础语法总结(一)