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()); } }
  • 相关阅读:
    随机生成4位验证码(包含数字, 字母)
    eval注册和登录
    51单片机中断机制(定时器/计数器)
    CS106B
    机器学习算法之旅(转载)
    Ubuntu系统使用记录
    2. 自然语言处理预备知识
    1. 自然语言处理描述
    前端学习网站
    2016年总结,2017年计划
  • 原文地址:https://www.cnblogs.com/lxh520/p/8250180.html
Copyright © 2011-2022 走看看