Java学习之接口
可爱的小北又回来啦!喵~~~
今天我们要讲的是java面向对象的接口
当然第一步是思维导图咯:
【1】什么是接口呢?
在JAVA编程语言中是一个抽象类型,是抽象方法的集合,接口通常以interface来声明。一个类通过继承接口的方式,从而来继承接口的抽象方法。接口并不是类,编写接口的方式和类很相似,但是它们属于不同的概念。类描述对象的属性和方法。接口则包含类要实现的方法。
【2】接口有什么特点呢?
接口特点:A:接口用关键字interface表示 格式:interface 接口名 { }
B:类实现接口用implements表示 格式:class 类名 implements 接口名 { }
C:接口不能用于实例化对象
那接口如何实例化呢? 按照多态的方式实例化
D:接口的子类:1)可以是抽象类。但是意义不大
2)可以是具体类。要重写接口中的所有抽象方法。(推荐)
小北来给大家上个例子,我们来初识接口:
以下是三个接口:
public interface BB{
void bb();
}
public interface CC {
public void cc();
}
public interface DD{
public void dd();
}
以下是MyDemo类,实现BB,CC,DD接口
//一个类可以实现多个接口
public void MyDemo implements BB,CC,DD{
@Overrride
public void bb() { }
@Override
public void cc() { }
@Override
public void dd() { }
}
以上就是一个很简单的接口实现。
小北认为呢,前两个特点接口用关键字interface表示和类实现接口用implement表示大家应该通过这个例子有所感触了
下面小北再给大家举个例子,以便于大家更深的理解
这是一个MyInterface接口
public interface MyInterface{
int NUM=100;
public static final double D=100;
//接口中成员变量前面的默认修饰符:public static final
//接口中所有的方法都是抽象方法,无非抽象方法
//方法前面默认有修饰符public abstract
//接口中无构造方法
//接口不能创建对象
//接口的子类可以是抽象类
//接口与接口之间可以继承,可以多继承
public abstract void fire();
void hehe();
}
这是一个抽象类Animal
public abstract class Animal{
public abstract void eat();
public abstract void sleep();
}
抽象类Animal的子类,也是MyInterface类的接口实现
public class Dog extends Animal implement MyInterface{
@Override
public void eat(){
}
@Override
public void sleep(){
}
@Override
public void fire() {System.out.println("狗经过学习,会钻火圈了");}
@Override
public void hehe() {System.out.println("呵呵");}
}
public class Cat extends Animal{
@Override
public void eat(){
}
@Override
public void sleep(){
}
}
Test测试类:
public class Test {
public static void main(String[] args) {
//接口不能实例化
MyInterface my = new Dog(); //多态的形式
my.fire();
}
}
最后经过多态的形式,这样就能实现接口的实例化啦
【3】接口成员的特点:
A:成员变量:只能是常量,并且是静态的-------->默认修饰符:public static final
B:构造方法:接口没有构造方法
C:成员方法:只能是抽象方法------------->默认修饰符:public abstract
例子呢上面第一个小北已经给大家给出啦。
【4】关系
A:类与类:继承关系,并且只能单继承,可以多层继承
B:类与接口:实现关系,可以单实现,也可以多实现,并且可以在继承一个类的时候同时实现多个接口
C:接口与接口:继承关系,可以单继承也可以多继承
例子相关的概念上面也都有包括
【5】抽象类和接口的区别
A:成员区别
抽象类:成员变量:可以变量,也可以常量
构造方法:有
成员方法:可以抽象,也可以非抽象
接口: 成员变量:只可以常量
成员方法:只可以抽象
B:关系区别
类与类:继承,单继承
类与接口:实现,单实现,多实现
接口与接口:继承,单继承,多继承
C:设计理念区别
抽象类:被继承体现的是:“is a ”的关系 抽象类中定义的是该继承体系的共性功能
接口: 被实现体现的是:“like a”的关系 接口中定义的是该继承体系的扩展功能
接下来就是今天接口的最后一个实例啦。
首先这是一个接口A
public interface A{
void a();
}
这是接口A的继承接口B(实现接口与接口的继承)
public interface B extends A{
void b();
}
这是一个接口AA
public interface AA{
void aa();
}
同理
public interface C extends B,AA{
void c();
}
接口C的实现
public class MyCat implement C{
@Override
public void c(){
}
@Override
public void b(){
}
@Override
public void a(){
}
@Override
public void aa() {
}
}
好啦,今天的接口部分就到这里啦!喵喵喵~~~~