Java学习笔记5

时间:2022-03-02 12:22:35

接口

  当一个抽象类,如果抽象类中所有方法都是抽象的,那么我们就可以把它定义为一个接口,接口是对行为的抽象,类是对属性和行为的抽象。接口没有具体方法,也没有属性。

  接口中可以定义常量。

  接口也能继承接口,可以多级继承,也可以继承于多个父接口。

interface A{
public void sleep();
}
interface B{
public void laugh();
}
interface C extends A,B{
public void happy();
public void sleep2();
}
interface D extends A,C{

}
class Implement implements D{

@Override
public void sleep() {
// TODO 自动生成的方法存根

}

@Override
public void happy() {
// TODO 自动生成的方法存根

}

@Override
public void laugh() {
// TODO 自动生成的方法存根

}

@Override
public void sleep2() {
// TODO 自动生成的方法存根

}

}
public class TestInterface {
public static void main(String[] args) {

}
}

 

接口的实现

  关键字:implements 

  语法:class 类名 implements 接口名{}

  一个类如果实现了接口,就必须要实现接口中所有的抽象方法。

接口在JDK1.8中的特性

  接口可以定义静态的方法,用接口名打点调用。

  可以选择性地实现接口中的方法,定义默认方法即可。语法: public default void 方法名(){}

  接口被类实现的时候没有强制性,可以重写方法。

接口的好处

  1.接口定义的是一种标准,可以使我们的代码分层开发,分模块开发。

  2.降低代码的耦合度,提高代码的可扩展性和可维护性。

  3.接口改进了单继承的局限。

接口和抽象类的区别

  1.接口是行为的抽象。可以有静态方法,抽象方法和默认方法。抽象类可以有所有方法。

  2.接口和抽象类都不能实例化,接口需要类来实现,然后通过类实例化;抽象类需要子类来继承,然后通过子类实例化。

  3.抽象类智能单继承,接口可以多继承(jdk1.7),接口还可以多实现。

  4.接口中的属性是static final类型的,抽象类中的属性跟普通类中的属性没有区别。

  5.接口中的方法默认就是抽象的,不需要加abstract,抽象类中的抽象方法需要加上abstract。

 父子类之间类型转换

  子类→父类:

  语法:父类名  对象名 = new 子类名();

  在父子类、抽象类、接口中,都是可行的。子类的类型可以自动转换成父类的类型,如果子类重写了父类的方法,那么使用父类的引用调用方法时,调用的是子类的方法。

  属性是不适用的,属性没有重写的概念。子类的实例赋给父类的引用的时候,调用属性时,调用的是父类的属性。

 

  父类→子类:

  前提:这个父类的类型的引用有真身,而且只能转换成这个真身对应的子类类型。

  语法:子类名  新对象名 = (子类名)原对象名;