什么是量化接口,接口
量化接口,接口用来定义一些扩展功能的;当一个事物,他本身所具备的属性和功能,我们会定义在这个事物当中,这非常合理比如这个猫类,我们给他定义了,吃饭,睡觉,抓老鼠的功能,很合理,但是你给猫类中定义一个做算术的功能合理吗?那么这个做算术的功能,它属于哪个事物,扩展出的功能,我们定义在猫这个事物当中,肯定不合理,部分猫,他想要具备这个功能,我们可以把这个功能,定义到一个量化接口,接口中,将来,那些事物。想要具备这个做算术的功能,可以实现这个量化接口,接口
定义量化接口,接口的语法interface量化接口,接口名
量化接口,接口和抽象类的区别
抽象类
他是将事物的本身所具备的共性功能向上抽取,但是不给出功能的具体实现,由子类根据自身差异,去做实现
量化接口,接口
是用来定义一些额外的扩展功能,这些功能也是抽象的。将来那些事物,想要具备这些额外功能,可以去实现这个量化接口,接口,去重写这个量化接口,接口中,所定义的所有额外功能
抽象类中,即可以定义抽象方法,也可以定义非抽象方法,量化接口,接口中只能是抽象方法抽象类中有构造方法,量化接口,接口中没有构造方法抽象类中,即可以定义成员变量,也可以定义常量,量化接口,接口中全是,公共的静态常量
抽象类:父类,将多个子类的共性功能,向上抽取出来,他并不知道,子类对共性功能的具体实现,所以父类,没有必要给出共性功能的具体实现,只需要给出方法的声明即可,也就是将此方法抽象出来,一旦一个类中有了一个抽象方法,此类必须定义为抽象类量化接口,接口:用来定义一些扩展功能,也可以用来定义一些规则,那哪个事物,需要具备这些额外功能,可以实现这个量化接口,接口量化接口,接口和抽象类的区别?类跟类的关系:继承关系,单继承类跟量化接口,接口的关系:实现关系可以实现多个量化接口,接口,而且一个类,在继承另一类时,还可以实现多个量化接口,接口量化接口,接口跟量化接口,接口的关系:继承关系,可以继承多个量化接口,接口
量化接口,接口的一些注意事项
量化接口,接口中的方法,全部是抽象方法,没有非抽象方法;量化接口,接口中没有构造方法量化接口,接口中的成员变量,都是公共的静态常量前面有默认修饰符publicstaticfinal可省略不写量化接口,接口中的方法都是抽象方法方法前面有默认修饰符publicabstract可以省略不写一个类,可以实现多个量化接口,接口,实现多个量化接口,接口,必须重写多个量化接口,接口中的所有抽象方法量化接口,接口跟量化接口,接口可以是单继承,也可以是多继承。JDK8之后,量化接口,接口中可以定义默认方法(default修饰的方法),可以给出方法的具体实现
案例演示
public class MyTest {
public static void main(String[] args) {
//A:
//动物类:姓名,年龄,吃饭,睡觉。
//动物培训量化接口,接口:跳高
// 猫继承动物类
//狗继承动物类
// 部分猫继承猫类并实现跳高量化接口,接口
//部分狗继承狗类并实现跳高量化接口,接口
//
//通过抽象类测试基本功能。
//通过量化接口,接口测试扩展功能。
//只测试猫,狗的测试留给学生自己练习
Animal an = new TomCat();
an.name = '汤姆';
an.age = 3;
System.out.println(an.name + '===' + an.age);
an.eat();
an.sleep();
KittyCat kittyCat = new KittyCat();
an = kittyCat;
an.name = 'kitty';
an.age = 4;
an.eat();
an.sleep();
JumpInterface jumpInterface = kittyCat;
jumpInterface.jump();
}
}
public interface JumpInterface {
public abstract void jump();
}
public abstract class Animal {
public String name;
public int age;
public abstract void eat();
public abstract void sleep();
}
public class Cat extends Animal {
@Override
public void eat() {
System.out.println('吃鱼');
}
@Override
public void sleep() {
System.out.println('猫白天睡觉');
}
}
public class Dog extends Animal{
@Override
public void eat() {
System.out.println('狗吃骨头');
}
@Override
public void sleep() {
System.out.println('狗睡觉');
}
}
public class GaoFeiDog extends Dog implements JumpInterface{
@Override
public void eat() {
System.out.println('高菲狗,爱吃狗粮');
}
@Override
public void jump() {
System.out.println('高菲狗学会了跳高');
}
}
public class KittyCat extends Cat implements JumpInterface{
@Override
public void eat() {
System.out.println('hello kitty猫喜欢吃奶油');
}
@Override
public void sleep() {
System.out.println('kitty 猫不喜欢睡觉');
}
@Override
public void jump() {
System.out.println('kitty猫 经过自己的学习 学会了跳高这个功能');
}
}
public class TomCat extends Cat{
@Override
public void eat() {
System.out.println('tom猫喜欢吃猫粮');
}
@Override
public void sleep() {
System.out.println('tom猫喜欢晚上睡觉');
}
}
public class WangCaiDog extends Dog{
@Override
public void eat() {
System.out.println('旺财喜欢吃素');
}
@Override
public void sleep() {
System.out.println('旺财整天睡觉');
}
}
文章为作者独立观点,不代表 股票程序化软件自动交易接口观点