接口
接口也是一种引用数据类型接口是完全抽象的而抽象类是半抽象所有接口和抽象类一样都不能创建对象语法:[修饰符列表]interface接口名{}接口中只包含两部分一部分是:常量一部分是:抽象方法接口中的所有元素都是public修饰(都是公开的)接口中的抽象方法定义时,可以将publicabstract可以省略接口中的定义常量时,可以将publicstaticfinal省略接口和抽象类都可以使用多态条件:要子类继承父类子类不是抽象类或者接口原因:还是因为使用多态时程序编译时是一种数据类型运行时又是另外一种数据类型
public class Test01
{
public static void main(String[] args){
System.out.println(MyMath.PI);
}
}
// 定义接口
interface A
{
}
interface B
{
}
// 接口支持继承 并且支持多继承
interface C extends A,B
{
}
// 我的数学接口
interface MyMath
{
// 抽象方法
// public abstract void sum();
void sum();
public static final double PI=3.1415926;
}
接口进行多态
public class Test02
{
public static void main(String[] args){
// 父类型引用指向子类型对象
MyMath mm=new MyMathImpl();
// 这叫做面向接口编程
// MyMath nn=new MyMath(); 报错
int a=mm.sum(20,20);
System.out.println(a);
}
}
interface MyMath
{
double PI=1.1415926;
int sum(int a,int b);
int sub(int a ,int b);
}
class MyMathImpl implements MyMath
{
// 必须要对父类所有抽象方法进行方法覆盖
public int sum(int a,int b){
return a+b;
}
public int sub(int a,int b){
return a-b;
}
}
public class Test03
{
public static void main(String[] args){
// 父类型引用指向子类型对象
A a=new D();
B b=new D();
C c=new D();
if(a instanceof B)
{
B bb=(B)a;
bb.m2();
}
}
}
interface A
{
void m1();
}
interface B
{
void m2();
}
interface C
{
void m3();
}
class D implements A,B,C
{
// 需要对每一个方法都进行重写
public void m1(){}
public void m2(){
System.out.println('m2----');
}
public void m3(){}
}
继承和多态都存在时代码应该怎么写??
public class Test04
{
public static void main(String[] args){
// 父类型引用指向子类型对象
Animal s=new Cat();
Flyable k=new Cat();
k.fly();
Flyable f2=new Pig();
f2.fly();
}
}
class Animal
{
}
// 可飞翔的接口
interface Flyable
{
void fly();
}
// 猫继承动物 再插上接口
class Cat extends Animal implements Flyable
{
public void fly()
{
System.out.println('飞猫起飞');
}
}
class Pig extends Animal implements Flyable
{
public void fly()
{
System.out.println('飞猪');
}
}
// 总结:你需要使用什么功能时,你就使用什么接口将它插入
接口和抽象类的区别
抽象类是半抽象,接口是完全抽象抽象类中有构造方法,接口中没有构造方法接口和接口之间可以进行多继承类和类之间只能进行单继承一个类可以有多个接口,一个抽象类只能继承一个类接口中只允许常量和抽象放法在以后,接口使用的比抽象类多,接口一般是对”行为“的抽象
文章为作者独立观点,不代表 股票程序化软件自动交易接口观点