企业家网站建设,常见的网站推广方式有哪些,网站流量指的是什么意思,西安做网站公司玖佰网络interface#xff08;接口#xff09;
1.interface的定义:
public interface 接口名{}
接口(interface)是抽象方法和常量值的定义的集合。
从本质上讲#xff0c;接口是一种特殊的抽象类#xff0c;这种抽象类中只包含常量和方法的定义#xff0c;而没有变量和方法的实…interface接口
1.interface的定义:
public interface 接口名{}
接口(interface)是抽象方法和常量值的定义的集合。
从本质上讲接口是一种特殊的抽象类这种抽象类中只包含常量和方法的定义而没有变量和方法的实现。
2.interface的抽象方法:
写抽象方法的几种形式可以省略public abstract 或public 或 abstract都可以。
public interface interfaceDemo01 {public abstract void show();void eat();abstract void sleep();public void study();
}如果要想实现接口就要有一个实现类去实现而且要实现它其中的抽象方法并且要用implements关键字。形式为实现类名 implements 接口名。
public class test implements interfaceDemo01{Overridepublic void show() {}Overridepublic void eat() {}Overridepublic void sleep() {}Overridepublic void study() {}
}
3.interface的默认方法:
在接口中可以有默认方法形式为 public default 返回值类型 方法名(){ }。
接口中默认方法的实现:
public interface interfaceDemo01 {public abstract void show();public default void play(){System.out.println(我在敲代码);}
}
接口中默认方法的调用:需要创建对象
public class demo {public static void main(String[] args) {test t new test();t.play();}
}
接口中默认方法还可以被实现类覆盖重写
public class test implements interfaceDemo01{Overridepublic void show() {}Overridepublic void play() {System.out.println(实现类重新接口默认方法);}
}
4.interface的静态方法:
在接口中可以有静态方法形式为 public static 返回值类型 方法名(){ }。
接口中静态方法的实现:
public interface interfaceDemo01 {public abstract void show();public default void play(){System.out.println(我在敲代码);}public static void moYu(){System.out.println(上课摸鱼);}
}
接口中静态方法的调用:不需要创建对象直接可以用 接口名.静态方法名();即可
public class demo {public static void main(String[] args) {test t new test();t.play();interfaceDemo01.moYu();}
}
接口中静态方法不能被实现类重写因为它属于接口独有并且在实现类中可以定义一个与接口中静态方法方法名相同的静态方法则这个静态方法归实现类独有。
5.interface的常量定义和使用:
在接口中定义常量形式为public final 数据类型 变量名 数值;。这里面的public 和 final都可以省略掉。
public interface interfaceDemo01 {public int m 100;public final int n 10;int w 100;public abstract void show();public default void play(){System.out.println(我在敲代码);}public static void moYu(){System.out.println(上课摸鱼);}
}
public class test implements interfaceDemo01{Overridepublic void show() {System.out.println(m);System.out.println(n);System.out.println(w);}Overridepublic void play() {System.out.println(实现类重新接口默认方法);}public static void moYu(){System.out.println(实现类独有);}
}
6.interface之间的多继承:
Java中的继承都是单继承的就是说一个父类可以被多个子类继承但是一个子类只能有一个父类。但是一个接口可以被不同实现类去实现这就是我们说的Java中的多态的概念。下面我们再来说一下接口的多继承的概念就是说一个接口是可以继承多个接口的。
一个实现类可以继承多个接口但要实现每个接口中的抽象方法。不过如果接口中存在相同的接口默认方法(也就是两个接口中默认方法名相同)这就是接口默认方法冲突。这个解决办法就是在实现类中覆盖重写该默认方法即可。
如果接口默认方法名和另一个接口的抽象方法同名返回值类型也相同这种冲突可以通过实现类覆盖重写该方法来解决问题。但是若返回值类型不相同则无法解决该问题因为这纯属没事闲的才这样做。
7.继承父类并实现多接口:
一个类既可以继承父类也可以是很多接口的实现类。形式为:类名 extends 父类名 implements 接口名接口名...
当父类的成员方法名和接口中的默认方法名相同时返回值类型也相同则优先继承父类即不显式的实现接口也不会报错。
当父类的成员方法名和接口中的抽象方法名相同时返回值类型也相同则优先继承父类即不显式的实现接口也不会报错。(这句话的意思就是因为子类继承了父类中的成员方法相当与覆盖重写了接口中的抽象方法所以子类中可以不实现该抽象方法调用时直接调用父类中的该成员方法即可)。
public class Fu {public Fu() {}public void play(){System.out.println(我在玩);}public void s(){System.out.println(m);}
}
public interface interfaceDemo01 {public int m 100;public final int n 10;int w 100;public abstract void show();public default void play(){System.out.println(我在敲代码);}public static void moYu(){System.out.println(上课摸鱼);}
}
public interface interfaceDemo02 {public abstract void show();void s();
}
public class test extends Fu implements interfaceDemo01,interfaceDemo02{Overridepublic void show() {System.out.println(m);System.out.println(n);System.out.println(w);}public static void moYu(){System.out.println(实现类独有);}
}
public class demo {public static void main(String[] args) {test t new test();t.show();t.play();t.s();interfaceDemo01.moYu();test.moYu();}
}
输出结果:
100 10 100 我在玩 m 上课摸鱼 实现类独有