码迷,mamicode.com
首页 > 编程语言 > 详细

Java抽象类和接口(二)

时间:2018-11-05 01:11:26      阅读:193      评论:0      收藏:0      [点我收藏+]

标签:扩展   oid   静态   方法   ati   属性   程序员   why   rtm   

***************************接口*********************************

一.why


需求一直不变的时候可以不使用接口, 需求经常发生改变推荐使用接口...


软件产品中需求会经常改变,所以一般都要使用接口...


体现了可维护、可扩展的优点


二.什么是接口


一组规范的集合(包含属性规范、行为规范),用的最多的是行为规范..


USB插槽(实现) != 接口(规范、看不见摸不着的)


网络中的协议也是规范,相当于接口...

 

三.how 如何定义接口


使用关键字 interface


public interface 接口名 {

//属性

//方法
}


注意:

1. 接口中的方法都是 抽象方法

public abstract

即使程序员 没有写 public 或 abstract 编译器编译的时候也会帮你补全这两个关键字


public interface Teacher{

void teach();
}

2. 接口中的属性都是 public static final的

即使程序员不写这几个关键字 编译器也会帮你补全

都是静态常量


演示代码:

Teacher.java

package com.chapter9.演示接口;

public interface Teacher {

//1.属性
public static final String TARGET = "teach";
//2.行为
public void teach();

public void dianMing();
}


JavaTeacher.java

package com.chapter9.演示接口;

//实现类
//实现接口要实现接口的所有方法
public class JavaTeacher implements Teacher{

@Override
public void teach() {
System.out.println("我在讲java");

}

@Override
public void dianMing() {
System.out.println("我在点名");

}

public static void main(String[] args) {

Teacher jt = new JavaTeacher();

jt.teach();
}
}

***************************接口的若干知识点*********************************


1. java这门语言是单继承, 为了模拟多重继承,可以使用接口,一个类可以实现多个接口来模拟多重继承


举例: JavaTeacher 既可以实现Teacher这个接口 又可以实现程序员这个接口

 

2. 接口可以扩展接口吗?


可以. 接口可以扩展 多个接口


举例: 高级厨师(规范)


1. 厨师(规范)

2. ArtMan(规范)

3. HealthMan(规范)


多个小的规范组成一个大的规范,接口可以扩展多个接口


3. 接口可以实现接口吗???

不可以. 因为 实现接口 要实现接口的所有抽象方法, 实现了抽象方法以后 该类

就带有已经实现的方法了,就不能再定义成接口了...

 


***************************JDK8关于接口的新特性: 带有实现的类方法和默认方法*********************************


接口中的方法都是抽象方法


public interface Teacher {

//1.属性
public String TARGET = "teach";
//2.行为
public void teach();

//带有实现的类方法
public static void dianMing(){
System.out.println("我在点名");
}

//默认方法
default public void exam(){
System.out.println("给学生考试");
}
}

 

Java抽象类和接口(二)

标签:扩展   oid   静态   方法   ati   属性   程序员   why   rtm   

原文地址:https://www.cnblogs.com/MrTanJunCai/p/9906790.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!