子类
package com.jd.service;
public **abstract** class Whale implements Mammal {
@Override
public void move() {
System.out.println('用鳍游动');
}
}
相同方法
父类
package com.jd.service;
public interface Mammal {
public abstract void move() ;
public abstract void wave();
}
IFather接口IMother接口Son类1publicprotectedfriendlyprivate只有public和默认的能修饰类和接口private修饰接口将会报错
接口中的抽象方法必须通过一个类来实现implements接口实现类:一个实现了接口中抽象方法的类,因为Whale类实现了接口中抽象方法,所以Whale类即是实现类
package com.jd.service;
public abstract class Whale implements Mammal {
@Override
public void move() {
System.out.println('用鳍游动');
}
}
0、接口重复抽象方法,实现类实现一个;接口中重复常量名,实现类必须指定到底调用哪个接口中的常量
默认修饰接口不会报错
在JDK8及其以后版本的JDK中,接口内可以定义静态方法与默认方法Java8以前版本中规定,接口中所定义的方法只能是抽象方法,从Java8开始,接口中可以添加一个或多个由default关键字修饰的非抽象方法,该方法又称为扩展方法,该默认方法将由接口实现类创建的对象来调用,如下例:
package com.jd.service;
public interface Mammal {
public static void eat() {
}//静态方法
public default void eat1() {
}//默认方法
}
注意:接口中的静态方法实现类无法继承,默认方法实现类可以继承,如下例:
如果一个类没有实现接口中的所有抽象方法,则该类必须为抽象类
接口一般以I开头接口中的变量为publicstaticfianl常量
继承:Java类只有单继承;但是Java中接口可以多继承通过extends关键字可以使自定义的接口实现继承,但需要注意以下两点:接口只能继承父接口,不能继承抽象类和普通类。接口弥补了Java单一继承的缺点(Java中的类只能继承一个父类),即接口可以继承多个父接口,它们之间用英文逗号隔开。类通过implements关键字实现接口,Java中的类只能是单继承,但却可以实现多个接口以弥补Java类单继承的不足,其语法如下:访问控制符修饰符class类名implements接口1[,接口2,……]{变量;方法;}
public class Son extends Father{
}//java中类只能单继承;
package jicheng;
public class Son implements IFather,IMother{
}//Java中接口可以多继承
在其他类中不能对于age变量进行二次赋值。接口中的抽象方法默认publicabstract
package com.jd.service;
public interface Mammal {
public abstract void move() ;
void wave();
}
子接口可以实现父接口中的某些抽象方法错子接口中不能使用普通方法,不能创建新的方法,所以不能实现父接口中的抽象类含有抽象方法的抽象类必须至少有一个子类完全实现了其抽象方法√含有抽象方法的抽象类一定至少会有一个非抽象类
package chengjie;
public interface Father {
void eat();
void breath();
void drink();
}//想要将父类的三种方法继承
package chengjie;
public abstract class Son implements Father{
@Override
public void eat() {
System.out.println('正在吃饭');
}//子类Son类继承父类的eat方法;
package chengjie;
public class Grandson extends Son {
public void breath() {
System.out.println('正在呼吸');
}
public void drink() {
System.out.println('正在喝水');
}
}//Grandson类是Son类的子类继承了breath方法和drink方法,这样Grandson类就实现了Father类中的所有方法
接口中定义age常量=12;
由于子类只继承了父类的move方法,但是没有继承父类的wave方法,所以子类必须为抽象类;接口中没有默认构造方法,而且也不能定义构造方法
文章为作者独立观点,不代表股票交易接口观点