美文网首页
7,抽象类和接口

7,抽象类和接口

作者: 旅程中 | 来源:发表于2018-10-08 16:28 被阅读3次

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

    抽象方法:
    被子类重写

    接口:不能用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 超人

    相关文章

      网友评论

          本文标题:7,抽象类和接口

          本文链接:https://www.haomeiwen.com/subject/mbjjaftx.html