admin管理员组

文章数量:829200

接口...

接口里面只允许有抽象方法 接口是功能的集合,同样可看做是一种数据类型,是比抽象类更为抽象的”类”。 接口只描述某个类所应该具备的方法,并没有具体实现,具体的实现由接口的实现类(相当于接口的子类)来完成。这样将功能的定义与实现分离,优化了程序设计。 接口定义了某一批类所需要遵循的规范,接口不关心这些类的内部状态,也不关心这些类里方法的实现细节,它只规定这批类必须具有某些方法。  格式: public interface 接口名{ 只允许抽象方法处着呢 } 1.抽象方法只允许公有的 2.定义的变量必须初始化   类实现接口 类和类的关系:继承(extends) 类与接口的关系:实现(implements)   类实现接口后: 必须实现接口里面的抽象方法
package com.jf.lxh.demo2.DAY9_demo02_接口;
public class Demo implements Inter{public void m1(){}
}
interface Inter{abstract void m1();
}
定义变量 接口中默认在变量前面添加的修饰符: public static final 定义方法 接口中定义方法默认在方法前面添加的修饰符: public abstract 构造方法 接口中不允许有构造方法 子类必须覆盖掉接口中所有的抽象方法后,子类才可以实例化。否则子类是一个抽象类。
package com.jf.lxh.demo2.DAY9_demo02_接口的成员;
public abstract class Demo implements Inter{
}
interface Inter{//定义变量//接口中默认在变量前面添加的修饰符://public static finalint a = 10;//定义方法//接口中定义方法默认在方法前面添加的修饰符://public abstractvoid show();//构造方法//接口中不允许有构造方法
}
接口多实现 类中 只能继承 一个父类 类可 以实现多个接口 必须实现接口的所有抽象方法    可以实现部分方法,但是该类(接口的实现类)必须是抽象类
package com.jf.lxh.demo2.DAY9_demo03_接口多实现;
public abstract class Demo implements Inter1{@Overridepublic void show1() {System.out.println("实现了第一个接口的方法");}
}
class Demo2 extends Demo{@Overridepublic void show1() {System.out.println("覆盖了父类的方法");}public static void main(String[] args) {Demo demo = new Demo2();demo.show1();}
}
interface Inter1{void show1();
}
interface Inter2{void show2();
}
接口多继承 类继承类同时实现接口: class Demo2 extends Demo implements Inter2{ }
package DEMO2.DAY9_demo03_接口多继承;
public class Demo implements Inter3{@Overridepublic void show1() {}@Overridepublic void show2() {}
}
interface Inter1{public void show1();
}
interface Inter2{public void show2();
}
interface Inter3 extends Inter2,Inter1{
}

接口案例

package DEMO2.DAY9_demo05_接口案例;
/**
* 语言:
* 中国人:中文
*        英文
*        德语
*/
public class Demo {
}
interface 中文{ }
interface 英文{ }//虽然这几个接口是空的,但是表示具备了这个功能
interface 德语{ }
//动物类
abstract class Animal{//吃的方法abstract void eat();
}
abstract class Bird extends Animal{ }
abstract class Insect extends Animal{}
//鸽子
class pigeon extends Bird implements Fly,英文{@Overridevoid eat() {System.out.println("面包屑");}@Overridepublic void fly() {System.out.println("鸽子会飞");}
}
//麻雀
class Sparrow extends Bird implements Fly{@Overridevoid eat() {System.out.println("昆虫");}@Overridepublic void fly() {System.out.println("麻雀会飞");}
}
//鸵鸟
class Ostrich extends Bird{@Overridevoid eat() {System.out.println("肉");}
}
//蚂蚁
class Ant extends Insect{@Overridevoid eat() {System.out.println("腐肉");}
}
//蜜蜂
class Bee extends Insect implements Fly{@Overridevoid eat() {System.out.println("花蜜");}@Overridepublic void fly() {System.out.println("蜜蜂会飞");}
}
//飞的接口
interface Fly{void fly();
}
前面学习了接口的代码体现,现在来学习接口的思想,接下里从生活中的例子进行说明。   举例:我们都知道电脑上留有很多个插口,而这些插口可以插入相应的设备,这些设备为什么能插在上面呢?主要原因是这些设备在生产的时候符合了这个插口的使用规则,否则将无法插入接口中,更无法使用。发现这个插口的出现让我们使用更多的设备。     总结:接口在开发中的它好处 1. 接口的出现扩展了功能。 2. 接口其实就是暴漏出来的规则。 3. 接口的出现降低了耦合性,即设备与设备之间实现了解耦。 高内聚 低耦合。降低了耦合性就是降低了两个 对象(比如:类)之间的关系 类与类、类与接口、接口与接口等关系 类与类 继承关系,只能单继承,可以多层继承 类与接口 实现关系,可以多实现 接口与接口 继承关系,可以单继承,也可以多继承 抽象类和接口多态
package DEMO2.DAY9_demo06_多态;
public class Demo {public static void main(String[] args) {//抽象类多态Fu fu = new Zi();//没有给Fu实现接口时,报错//fu.show();//想要调用show方法,强转Zi zi = (Zi)fu;((Zi) fu).show();//接口多态Inter i = new Zi();i.show();//fu的类型:Fu、Zi、Inter//第三种:强转InterInter i2 = (Inter)fu;i2.show();}
}
abstract class Fu {
}
class Zi extends Fu implements Inter{@Overridepublic void show() {System.out.println("实现了接口");}
}
interface Inter{void show();
}

 

本文标签: 接口