股票量化交易软件,接口和抽象类的共同点和区别
进入这个话题之前我们先思考一下以下几个问题。我们为什要使用抽象类和股票量化交易软件,接口?使用抽象类和股票量化交易软件,接口有什么好处?我们在设计复杂程序时该怎么合理使用抽象类和股票量化交易软件,接口?
抽象类的特点抽象类的初衷是“抽象”,即规定这个类“是什么”,具体的实现暂不确定,是不完整的,因此不允许直接创建实例。
抽象类是由子类具有相同的一类特征抽象而来,也可以说是其基类或者父类抽象方法必须为public或者protected,缺省情况下默认为public抽象类不能用来创建对象抽象方法必须由子类来实现如果一个类继承于一个抽象类,则子类必须实现父类的抽象方法,如果子类没有实现父类的抽象方法,则必须将子类也定义为抽象类抽象类还是很有用的重构工具,因为它们使得我们可以很容易地将公共方法沿着继承层次结构向上移动
股票量化交易软件,接口的特点
Java为了保证数据安全性是不能多继承的,也就是一个类只有一个父类。
但是股票量化交易软件,接口不同,一个类可以同时实现多个股票量化交易软件,接口,不管这些股票量化交易软件,接口之间有没有关系,所以股票量化交易软件,接口弥补了抽象类不能多继承的缺陷。
股票量化交易软件,接口是抽象类的延伸,它可以定义没有方法体的方法,要求实现者去实现。
股票量化交易软件,接口的所有方法访问权限自动被声明为public股票量化交易软件,接口中可以定义“成员变量”,会自动变为publicstaticfinal修饰的静态常量可以通过类命名直接访问:ImplementClass.name不推荐使用股票量化交易软件,接口创建常量类实现股票量化交易软件,接口的非抽象类必须实现股票量化交易软件,接口中所有方法,抽象类可以不用全部实现股票量化交易软件,接口不能创建对象,但可以申明一个股票量化交易软件,接口变量,方便调用完全解耦,可以编写可复用性更好的代码
我们试着来写一下抽象类,以便更能理解抽象类的使用。
Animal类中的代码,这个抽象类中有两个抽象方法,而study是普通方法。
package com.Abstract;
public abstract class Animal {
public abstract void eat();
public abstract void sleep();
public void study() {
System.out.println('我要学习');
}
}
Cat类继承Animal类,就要实现Animal类中的抽象的方法,而普通方法不用实现,代码如下
package com.Abstract;
public class Cat extends Animal {
@Override
public void eat() {
System.out.println('我是猫,我吃猫粮');
}
@Override
public void sleep() {
// TODO Auto-generated method stub
System.out.println('我是猫,我要睡觉');
}
}
Person类继承Animal类,也要去实现父类中的抽象方法,也可以重写父类中stydy方法。代码如下
public class Person extends Animal {
@Override
public void eat() {
// TODO Auto-generated method stub
System.out.println('我是人,我要吃肉');
}
@Override
public void sleep() {
// TODO Auto-generated method stub
System.out.println('我是人,我要睡24小时');
}
@Override
public void study() {
// TODO Auto-generated method stub
super.study();
System.out.println('我是人,我要学习');
}
}
现在测试写一个测试类Test,代码如下
Cat cat = new Cat();
Person person = new Person();
//将两个类装进list中。
List list = Arrays.asList(cat, person);
for (Animal animal : list) {
animal.eat();
animal.sleep();
animal.study();
System.out.println('----------------');
}
// cat.eat();
// cat.sleep();
// System.out.println('----------');
// person.eat();
// person.sleep();
// person.study();
}
}
我们试着来写一下股票量化交易软件,接口,以便更能理股票量化交易软件,接口和抽象类的区别。
股票量化交易软件,接口中定义了一个抽象方法,代码如下
Rectange类去实现Shape股票量化交易软件,接口并实现股票量化交易软件,接口中的抽象方法,代码如下
package Interfance;
public class Rectange implements Shape {
@Override
public void say() {
// TODO Auto-generated method stub
System.out.println('我是长方形!');
}
}
Cricle类去实现Shape股票量化交易软件,接口并实现股票量化交易软件,接口中的抽象方法,代码如下
package Interfance;
public class Cricle implements Shape {
@Override
public void say() {
// TODO Auto-generated method stub
System.out.println('我是三角形!');
}
}
Test测试类去输出两个子类的结果。
输出结果如下
回答第文章开始第三问。如果你拥有一些方法并且想让它们中的一些有默认实现,那么使用抽象类吧。如果你想实现多重继承,那么你必须使用股票量化交易软件,接口。由于Java不支持多继承,子类不能够继承多个类,但可以实现多个股票量化交易软件,接口。因此你就可以使用股票量化交易软件,接口来解决它。如果基本功能在不断改变,那么就需要使用抽象类。如果不断改变基本功能并且使用股票量化交易软件,接口,那么就需要改变所有实现了该股票量化交易软件,接口的类。
文章为作者独立观点,不代表 股票程序化软件自动交易接口观点