JAVA基础补漏--抽象类

抽象类使用的四点注意事项:

1.抽象类不能创建对象。

2.抽象类可以没有抽象方法,但有抽象方法一定得是抽象类。

3.抽象类可以有构造方法,是供子象创建对象时,初始化父类成员使用的。

4.抽象类的子类,必须要重写父类的所有抽象方法,否则报错。


Interface java8 特性

增加default方法

使用方法:

···
public interface myInterface(

    public void abstract fun1();

     public void default fun2()
        {
            System.out.println();
        }

)
···
fun1()必须在实现类中重写。
fun2()不是必须在实现类中重写,所有实现类直接继承即可。

增加static方法

public interface myInterface()
{
    public static fun3()
    {
        System.out.println();
     }
}

fun3()不用再写实现类,直接调用即可。
即:myInterface.fun3();


Interface java9 特性

普通私有方法

private void fun4()
{
System.out.println();
}
用来解决普通default方法中的重复代码

静态私有方法

private void fun5()
{
System.out.println();
}
用来解决普通static方法函数中的重复代码

接口中的成员变量其实为常量

public static final int NUM = 9;

一个类实现多个接口时会出现的问题

public interface A{

public default void fun()
{
sout();
}
}

public interface B{

public default void fun()
{
sout();
}

}

public class implements A,B{

public void fun()
{
    sout();    

}
}

实现类必须要重写默认方法fun(),以避免两个的冲突。

一个类即继承又实现接口时的优先级

public class fu{

public void fun()
{    
    sout();
}

}

public interface myInterface {

public default void fun()
{    
    sout();
}

}

public class zi extends fu implement myInterface{
}

这时如果类fu与类myInterface中存在的default函数同名,则优先fu,不用非得重写同名函数

利用多态性。可以这样定义。

Interface obj = new InterfaceImpl();

posted @ 2019-02-15 09:35  comeluder  阅读(134)  评论(0编辑  收藏  举报