Differences between Java interfaces and abstract classes
                                        
                    •
                    Java                                    
                Basic grammatical differences
public interface Animal {
    // 所有动物都会吃
    public void eat();
    // 所有动物都会飞
    public void fly();
}
public abstract class Animal {
    // 所有动物都会吃
    public abstract void eat();
    // 所有动物都会飞
    public void fly(){};
}
public class concreteAnimal implements Animal {
    // 所有动物都会吃
    public void eat(){}
    // 所有动物都会飞
    public void fly(){}
}
public class concreteAnimal extends Animal {
    // 所有动物都会吃
    public void eat(){}
    // 所有动物都会飞
    public void fly(){}
}
Differences in design ideas
public interface Animal {
    // 所有动物都会吃
    public void eat();
}
public abstract class Animal {
    // 所有动物都会吃
    public abstract void eat();
}
public class concreteAnimal implements Animal {
    // 所有动物都会吃
    public void eat(){}
}
public class concreteAnimal extends Animal {
    // 所有动物都会吃
    public void eat(){}
}
public interface Animal {
    // 所有动物都会吃
    public void eat();
    // 所有动物都会飞
    public void fly();
}
public abstract class Animal {
    // 所有动物都会吃
    public abstract void eat();
    // 所有动物都会飞
    public void fly(){};
}
public interface AnimaiFly {
    // 所有动物都会飞
    public void fly();
}
public class concreteAnimal implements Animal,AnimaiFly {
    // 所有动物都会吃
    public void eat(){}
    // 动物会飞
    public void fly();
}
public abstract class AnimaiFly {
    // 动物会飞
    public void fly();
}
public abstract class AnimaiFly extends Animal {
    // 动物会飞
    public void fly();
}
public abstract class Animal {
    // 所有动物都会吃
    public abstract void eat();
}
public interface AnimaiFly {
    // 动物会飞
    public void fly();
}
public class concreteAnimal extends Animal implements AnimaiFly {
    // 所有动物都会吃
    public void eat(){}
    // 动物会飞
    public void fly();
}
public interface Animal {
    // 所有动物都会吃
    public abstract void eat();
}
public abstract class AnimaiFly {
    // 动物会飞
    public void fly(){};
}
public class concreteAnimal extends AnimaiFly implements Animal {
    // 所有动物都会吃
    public void eat(){}
    // 动物会飞
    public void fly();
}
                
                            The content of this article comes from the network collection of netizens. It is used as a learning reference. The copyright belongs to the original author.
                        
                                            
                        THE END
                    
                    
                    
                                                        二维码
                        
                        
                                                
                        