抽象类和接口的区别
1.结构组成:抽象类由普通类和抽象方法组成,接口由抽象方法和全局常量组成,没有已经实现的方法
2.权限:抽象类中拥有各种权限,接口中只能有public
3.子类使用:抽象类使用extends关键字继承抽象类,接口中使用implments关键字实现接口
4.关系:一个抽象类可以实现若干个接口,接口不能继承抽象类,接口可以使用extends关键字继承多个父接口
5.子类限制:抽象类中一个子类只能继承一个抽象类,而接口中一个子类可以实现多个接口
以下为代码实现:
//接口由全局常量和抽象方法组成没有已经实现的方法
//接口中权限只能是public
//接口不能继承抽象类
public interface IA {
public static final String a = "pan";//全局常量
public abstract void print1();//抽象方法
}
public interface IB{
public static final String b = "zhang";//全局常量
public abstract void print2();//抽象方法
}
//接口可以使用extends关键字继承多个父接口
public interface IC extends IA,IB {
public static final String c = "liu";//全局常量
public abstract void print();//抽象方法
}
/**
* Created with IntelliJ IDEA.
* Description:
* User:
* Date: 2019-04-18
* Time: 17:39
*/
//定义一个抽象类
//抽象类有普通类和抽象方法组成
//抽象类中有各种权限
abstract class Computer{
//属性
private String name;
private int price;
//普通方法
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getPrice() {
return price;
}
public void setPrice(int price) {
this.price = price;
}
//抽象方法,{}为方法体,抽象方法不包含方法体
abstract public void print();
}
//抽象类中使用extends关键字继承抽象类
//抽象类中一个子类只能继承一个抽象类
class Micomputer extends Computer{
@Override
public void print() {
System.out.println("this is a Mi computer");
}
}
//一个子类可以实现若干个接口
//接口中使用implments关键字实现接口,
class B implements IA,IB{
@Override
public void print1() {
System.out.println("this is IA function");
}
@Override
public void print2() {
System.out.println("this is IB function");
}
}
public class TextDemo3 {
}