1。面向对象--接口的实际应用--制定标准
Java代码
interface USB
{
public void start();
public void stop();
}
class Computer
{
public static void pugin(USB usb){
usb.start();
System.out.println("**************working********");
usb.stop();
}
}
class Flash implements USB
{
public void start(){
System.out.println("======U盘开始工作===========");
}
public void stop(){
System.out.println("======U盘停止工作===========");
}
}
class Print implements USB
{
public void start(){
System.out.println("======打印机开始工作===========");
}
public void stop(){
System.out.println("======打印机停止工作===========");
}
}
public class Demo5
{
public static void main(String[] args)
{
Computer.pugin(new Flash());//这种调用的方法,还是第一次见
Computer.pugin(new Print());
}
}
用来实例化接口和抽象类的。
这个例子中,USB是一种标准,只有符合这个标准的才能通过USB与电脑相连,而电脑也只认USB。只要你符合这个接口,就可以使用,他不管你是什么设备。
那么就可以这么认为,interface接口 他制定了一个标准,通过这个接口(标准)来让各个部分相连。
而且相对于抽象类而言,接口可以多继承。
2。实例2
public class Employee {
private String name;
public Employee(String name ) {
this.name = name;
}
public String getName() {
return name;
}
public void printName(){}
public void printEarning(){}
}
class Manager extends Employee {
protected double salary;
public Manager( String name, double salary) {
super( name );
this.salary = salary;
}
public void printName(){
System.out.println("Manager: " + getName());
}
pubblic void printEarning(){
System.out.println(" earned $ " + salary);
}
}
class RegularWorker extends Employee {
protected double salary, overtimePay;
public RegularWorker( String name, double salary, double overtimePay){
super( name );
this.salary = salary;
this.overtimePay = overtimePay;
}
public void printName(){
System.out.println("RegularWorker: " + getName());
}
pubblic void printEarning(){
System.out.println(" earned $ " + salary);
}
}
public class PerDepart {
public void printInfo(Employee ref){
ref.printName();
ref.printEarning();
}
public static void main( String args[] ) {
PerDepart perDepart = new PerDepart();
Manager manager = new Manager( "Wang", 5800.00 );
RegularWorker rw = new RegularWorker( "Lee", 2980.00, 270.0);
perDepart.printInfo(manager);
perDepart.printInfo(rw);
}
}
三。实现多态的三个必要条件
1.要有继承
2.要有重写
3.父类引用指向子类对象
四。多态性的好处
1.派生类的功能可以被基类的方法或引用变量所调用,这叫向后兼容,可以提高可扩充性和可维护性。
2.应用程序不必为每一个派生类编写功能调用,只需要对抽象基类进行处理即可。大大提高程序的可复用性。