JAVA继承、接口

JAVA继承、接口

接口1

public interface IAction1 {
    void run();
}

接口2

public interface IAction2 {
    void run();
}

Animal

public class Animal {
    String name; //属性
    int age; //属性

    // 默认构造函数
    public Animal() {}
// 带参构造函数
    public Animal(String name, int age) {
        this.name = name;
        this.age = age;}
// 重写父类toString
    @Override
    public String toString() {
        return "Animal("+"name="+name+'\''+",age="+age+')'; }
    // 重写父类equls
    @Override
    public boolean equals(Object obj) {
        return super.equals(obj);}
    // 快速生成的接口
    public String getName() {
        return name; }
    public void setName(String name) {
        this.name = name; }
    public int getAge() {
        return age;}
    public void setAge(int age) {
        this.age = age; }
}

Dog

// 继承Animal(关键字extends)
// 接口IAction1(关键字 implements)
public class Dog extends Animal implements IAction1 {
    // 带参构造函数,调用父类带参构造(调用父类关键字super)
    public Dog(String name, int age) {
        super(name, age);}

    @Override
    public String getName() {
        return "dog"; }

    @Override
    public void run() {
        System.out.println("IAction1.run"); }
    // 增加接口2
    public void addAction(IAction2 iAction2)
   {iAction2.run();}}

MAIN

public class Main{
    public static void main(String[] args) {
// 实例
        Dog dog = new Dog("秋田犬",1);
        // 使用内部类对象
//dog.addAction(new MyClass());
        // 这种语法做了三件事: new IAction2(){....}
        // 1. 创建一个匿名类
        // 2. 实现了IAction2接口
        // 3. 返回一个匿名类对象
        dog.addAction(new IAction2() {
            @Override
            public void run() {
                System.out.println("IAction2 run"); }
});
        dog.run();
   }
}

猜你喜欢

转载自www.cnblogs.com/ltyandy/p/11544577.html
今日推荐