zoukankan      html  css  js  c++  java
  • 6-1 接口的默认方法

    public interface PersonO {
    
        /*default String getName(){
            return getClass().getName();
        }*/
        
        int size();
        default boolean max(){
            return size() == 0;
        }
        
        String getName();
    }
    public interface StudentO {
        
    //    default String getName(){
    //        return this.getClass().getName()+"_"+hashCode();
    //    }
    
        String getName();
        
    }
    public class PersonT {
    
        public String getName() {
            return getClass().getName();
        }
    }
    public class InterFaceTest extends PersonT implements PersonO,StudentO{
    
        
        @Override
        public int size() {
            return 0;
        }
        

        /**
         * @author:lixh
         *
         * Java8之后接口出现了default方法
         *
         * 1.默认方法的一个重要用途是接口演化,接口扩展了方法,实现类不用必须实现
         *
         * 2.解决默认方法冲突
         * 1)超类优先,如果超类实现了一个默认方法,同名且相同参数类型的默认方法会被忽略。
         * 2)如果一个超接口提供了一个默认方法,另一个接口提供了一个同名且相同参数的方法(不管是否默认),
         *             要重写方法来解决冲突
         * 3)如果两个接口都没有为共享方法提供默认实现,不存在冲突。实现这个方法,或者不实现(抽象类)
         *
         * 一个类的超类和接口实现相同的方法,超类优先,接口被忽略。
         */
    //二义性 /* 两个默认 * @Override public String getName() { return PersonO.super.getName(); } @Override public String getName() { // TODO Auto-generated method stub return StudentO.super.getName(); }*/ /* 一个默认一个无默认 * @Override public String getName() { // TODO Auto-generated method stub return PersonO.super.getName(); } @Override public String getName() { // TODO Auto-generated method stub return null; }*/ /* * 两个无默认 @Override public String getName() { // TODO Auto-generated method stub return null; }*/ //超类优先 @Override public String getName() { // TODO Auto-generated method stub return super.getName(); } public static void main(String ... arg){ InterFaceTest i1 = new InterFaceTest(); System.out.println(i1.getName()); } }
  • 相关阅读:
    AC日记——接苹果 洛谷 P2690
    AC日记——友好城市 洛谷 P2782
    AC日记——栈 洛谷 P1044
    AC日记——L国的战斗之间谍 洛谷 P1916
    AC日记——[USACO1.1]坏掉的项链Broken Necklace 洛谷 P1203
    AC日记——[USACO1.5]数字三角形 Number Triangles 洛谷 P1216
    Codevs 1048 石子归并
    Codevs 1138 聪明的质监员 2011年NOIP全国联赛提高组
    HDU 1575 Tr A
    Codevs 5059 一起去打CS
  • 原文地址:https://www.cnblogs.com/lxh520/p/8250180.html
Copyright © 2011-2022 走看看