热门搜索 :
考研考公
您的当前位置:首页正文

7,抽象类和接口

来源:东饰资讯网

抽象类:不允许实例化,可以通过向上转型,指向子类类型

抽象方法:
被子类重写

接口:不能用abstract,设置int a=1 默认为常量
区别:
1)抽象类可以提供成员方法的实现细节,而接口中只能存在public abstract 方法;
2)抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是public static final类型的;
3)接口中不能含有静态代码块以及静态方法,而抽象类可以有静态代码块和静态方法;
4)一个类只能继承一个抽象类,而一个类却可以实现多个接口。

接口1.8之后的方法体:实现接口后直接调用就行(用default或者static修饰)

MyInterface.java:

interface MyInterface{
    String myNewName(String newName);

    default String myOldName(){
        return "chao";
    }
}

GetName.java:

public class GetName implements MyInterface{

    public static void main(String args[]){
        GetName getName = new GetName();
//可以直接调用接口中的默认方法myOldName()
        System.out.println("my old name is "+getName.myOldName());
        String newName = "超人";
        getName.myNewName(newName);
    }
//只需要实现接口中没有方法体的方法即可;
    public String myNewName(String newName){
        System.out.println("my new name is "+newName);
        return "my new name is "+newName;
    }
}

运行结果:
my old name is chao
my new name is 超人

Top