java中的面向接口编程示例

玩聚 2025-7-3 54 7/3

创建目录
mkdir -p src/com/demo/ build
在demo 文件夹中创建对应的 Animal.java Dog.java App.java

// Dog.java

package com.demo;
public interface Animal {

public void eat();
public void sleep();
}


// Dog.java

package com.demo;

public class Dog implements Animal{

    @Override
    public void eat() {
        System.out.println("狗吃骨头");
    }

    @Override
    public void sleep() {
        System.out.println("狗睡觉");
    }

    public void bark() {
        System.out.println("狗在汪汪叫");
    }
}

// App.java

package com.demo;


public class App{

 public static void main(String[] args){
        Dog a = new Dog();
        a.eat();
        a.sleep();
        a.bark();
        Animal b = new Dog();
        b.eat();
        b.sleep();
       //先判断,再转换
        if (b instanceof Dog) {
            ((Dog) b).bark();
        }
    }

}

javac -d build src/com/demo/*.java

cd build ; echo Main-Class: com.demo.App>manifest.txt
jar -cfm com.demo.interface.jar manifest.txt com/demo/*.class

 

java -jar com.demo.interface.jar
狗吃骨头
狗睡觉
狗在汪汪叫
狗吃骨头
狗睡觉
狗在汪汪叫

这里用了直接实例化类型为Dog 和实例化Animal再强转为Dog两种写法,一个是面向对象,一个是面向接口。初学的我不清楚哪个更好。

- THE END -

玩聚

7月03日16:31

最后修改:2025年7月3日
0

非特殊说明,文章内容整理自互联网。

共有 0 条评论