一、为什么需要接口?
需求一直改变,所以用接口 ,体现了可维护可扩展的特点
二、接口的定义
一组规范的集合(包含属性规范、行为规范),用的最多的是行为规范
public interface 接口名{};
使用关键字interface
注意:1.接口中的方法都是抽象方法 即使没有写public或者abstract 编译的时候也会帮你补全这两个字
2.接口中的属性都是public static final的 都是静态常量
三、实现接口的方法 implements
1. java这门语言是单继承, 为了模拟多重继承,可以使用接口,一个类可以实现多个接口来模拟多重继承
举例: JavaTeacher 既可以实现Teacher这个接口 又可以实现程序员这个接口
2. 接口可以扩展接口吗?
可以. 接口可以扩展 多个接口
3. 接口可以实现接口吗???不可以. 因为 实现接口 要实现接口的所有抽象方法, 实现了抽象方法以后 该类就带有已经实现的方法了,就不能再定义成接口了...
接口代码:
public class Stone implements FalyStyle {
@Override
public void fly() {
System.out.println("用手仍石头");
}
@Override
public void go() {
// TODO Auto-generated method stub
}
}
public class Test {
public static void main(String[] args) {
Stone s1=new Stone();
s1.fly();
}
/* String s = "nba";
public void test(String s)
{
System.out.println("s:"+s);//显示传入的局部变量s的值
System.out.println("this.s:"+this.s);//显示本类的成员属性s的值
this.s=s; //将本类的属性赋值为局部变量s的值
System.out.println("s:"+s);//显示传入的局部变量s的值
System.out.println("s:"+s);
System.out.println("this.s:"+this.s);//显示本类的属性s,此时本类的属性s已被赋值为cba
}
public static void main(String[] args) {
new Test().test("cba");
}*/
}
public class Flyplay implements FalyStyle{
@Override
public void fly() {
// TODO Auto-generated method stub
System.out.println("飞机在天上飞");
}
@Override
public void go() {
// TODO Auto-generated method stub
}
}
public interface FalyStyle {
void fly();
abstract void go();
}
public class Backball implements FalyStyle,Atcat {
@Override
public void fly() {
// TODO Auto-generated method stub
System.out.println("球在天上飞");
}
@Override
public void play() {
// TODO Auto-generated method stub
System.out.println("用手拍");
}
@Override
public void go() {
// TODO Auto-generated method stub
}
}public interface Atcat {
public void play();
}

被折叠的 条评论
为什么被折叠?



