Java抽象类和接口(二)

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

一.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("给学生考试");
}
}

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

时间: 2025-01-17 20:23:46

Java抽象类和接口(二)的相关文章

浅析Java抽象类和接口的比较

abstract class和interface是Java语言中对于抽象类定义进行支持的两种机制,正是由于这两种机制的存在,才赋予了Java强大的面向对象能力. abstract class和interface之间在对于抽象类定义的支持方面具有很大的相似性,甚至可以相互替换,因此很多开发者在进行抽象类定义时对于 abstract class和interface的选择显得比较随意.其实,两者之间还是有很大的区别的,对于它们的选择甚至反映出对于问题领域本质的理解.对于设计意图的理解是否正确.合理.本

JAVA抽象类和接口的深入探讨

Java 语言中,抽象类(abstract class) 和接口(interface) 是抽象思想的两种体现形式.初学者很容易把这两者搞混,所以Java面试中考抽象类和接口的区别的面试题也常有出现的. 本文将从下面几个方面深入探讨一下Java 抽象类和接口 一.抽象类语法及规范 二.接口的语法及规范 三.抽象类和接口的区别 ,将从语义细节及设计层面两方面来描述 本文由本人查阅资料并结合自己理解所作,如果有理解不到位的地方,欢迎各位斧正. 一.抽象类 抽象类使用 abstract class 来定

java抽象类和接口

1.抽象类 抽象类在概念上描述的是抽象世界,抽象类刻画了公有行为的特征,并且通过继承机制传送给它的派生类.抽象类使用关键字abstract 修饰,语法如下: abstract class 类名{ 类体; } 抽象方法是指在抽象类中某些成员方法没有具体的实现,只有方法声明.抽象方法使用关键字abstract 修饰,格式如下: public abstract 返回类型 方法名([参数列表]); 抽象类和抽象方法的具体规则如下: 1.用abstract 关键字修饰一个类时,该类叫做抽象类,用abstr

JAVA学习经验--总结JAVA抽象类和接口

* --总结JAVA抽象类和接口  * 1.抽象类:  *             1>抽象类可以修饰方法,修饰类,但不能修饰属性,不能被实例化  *             2>抽象类可以被继承,只能是单继承,继承抽象类必须实现抽象方法  *             3>抽象类不能被static ,fina,private一起修饰  *             4>抽象类是有多态性的  *  * 2.接口:  *             1>接口是一种特殊的抽象类,不能被实

java 抽象类、接口的使用

理解抽象类 abstract class和interface在Java语言中都是用来进行抽象类(本文 中的抽象类并非从abstract class翻译而来,它表示的是一个抽象体,而abstract class为Java语言中用于定义抽象类的一种方法, 请读者注意区分)定义的,那么什么是抽象类,使用抽象类能为我们带来什么好处呢? 在面向对象的概念中,我们知道所有的对象都是通过类来描绘的,但是反过来却不是这样.并不是 所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这

java抽象类和接口详解

接口和内部类为我们提供了一种将接口与实现分离的更加结构化的方法. 抽象类与接口是java语言中对抽象概念进行定义的两种机制,正是由于他们的存在才赋予java强大的面向对象的能力.他们两者之间对抽象概念的支持有很大的相似,甚至可以互换,但是也有区别. 一.抽象类 我们都知道在面向对象的领域一切都是对象,同时所有的对象都是通过类来描述的,但是并不是所有的类都是来描述对象的.如果一个类没有足够的信息来描述一个具体的对象,而需要其他具体的类来支撑它,那么这样的类我们称它为抽象类.比如new Animal

java 抽象类和接口整理

java中定义一些不含方法体的方法,方法体的实现交给该类的子类根据自己的具体情况去实现,这样的方法就是abstract修饰的抽象方法,包含抽象方法的类叫抽象类,用abstract修饰 抽象方法: abstract [修饰符] <返回类型>方法名([参数表]): 注意:最后的标点符号是“:” ,没有大括号!加了大括号就代表你要去实现这个方法,但是抽象方法不能有主体!无需实现!只需声明. 抽象超类的所有具体子类都必须为超累的抽象方法提供具体实现. 抽象类: 有一个或多个抽象方法,可以有一般方法 必

java抽象类和接口区别

深入理解Java的接口和抽象类 对于面向对象编程来说,抽象是它的一大特征之一.在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类.这两者有太多相似的地方,又有太多不同的地方.很多人在初学的时候会以为它们可以随意互换使用,但是实际则不然.今天我们就一起来学习一下Java中的接口和抽象类.下面是本文的目录大纲: 一.抽象类 二.接口 三.抽象类和接口的区别 一.抽象类 在了解抽象类之前,先来了解一下抽象方法.抽象方法是一种特殊的方法:它只有声明,而没有具体的实现.抽象方法的声明格式为:

JAVA抽象类与接口

在Java语言中, abstract class 和interface 是支持抽象类定 义的两种机制.正是由于这两种机制的存在,才赋予了Java强大的 面向对象能力.abstract class和interface之间在对于抽象类定义的支持方面具有很大的相似性,甚至可以相互替换,因此很多开发者在进行抽象类定义时对于abstract class和interface的选择显得比较随意.其实,两者之间还是有很大的区别的,对于它们的选择甚至反映出对 于问题领域本质的理解.对于设计意图的理解是否正确.合理

java 抽象类与接口的区别

在Java 语言中, abstract class 和interface 是支持抽象类 定义的两种机制.正是由于这两种机制的存在,才赋予 了Java强大的 面向对象能力.abstract class和interface之间在对于抽象类定义的支持方面具有很大的相似性,甚至可以相互替换,因此很多开发者在进 行抽象类定义时对于abstract class和interface的选择显得比较随意.其实,两者之间还是有很大的区别的,对于它们的选择甚至反映出对 于问题领域本质的理解.对于设计意图的理解是否正确