首页 > 其他分享 >454方法引用_通过super引|用父类的成员方法和455方法引用_通过this引l用本类的成员方法

454方法引用_通过super引|用父类的成员方法和455方法引用_通过this引l用本类的成员方法

时间:2022-09-23 09:56:35浏览次数:51  
标签:void public sayHello 引用 父类 方法 成员

通过super引|用父类的成员方法

/*
定义一个见面得函数式接口
 */
public interface Greetable {
    /*
    定义一个见面得方法
     */
    void greet();
}

/*
定义父类
 */
public class Human {
    //定义一个sayHello的方法
    public void sayHello(){
        System.out.println("Hello,我是Human");
    }
}

/*
定义子类
 */
public class Man extends Human{
    //子类重写父类sayHello的方法
    public void sayHello(){
        System.out.println("Hello 我是Man");
    }
    //定义一个方法参数传递Greetable接口
    public void method(Greetable g){
        g.greet();
    }
    public void show() {
        //调用method方法,方法的参数Greetable是一个函数式接口,所以可以传递Lambda
        /*method(()->{
            //创建夫类的Human对象
            Human human = new Human();
            //使用父类的sayHello方法
            human.sayHello();
        });*/

        //因为子夫类关系,所以存在的一个关键字super,代表父类,所以我们可以直接使用supe调用父类的成员方法
        /*method(() -> {
            super.sayHello();
        });*/
        /*
        使用super引用类的成员方法
        super是已经存在的
        父类的成员方法sayHello也是存在的
        所以我们可以直接使用sup引用父类的成员方法
         */
    method(super::sayHello);
    }




    public static void main(String[] args) {
        new Man().show();
    }
}

通过this引l用本类的成员方法

this代表当前对象,如果需要引用的方法就是当前类的成员方法,那么可以使用“this :: 成员方法”的格式来使用方法引用。

/*
定义一个富有的函数式接口
 */
public interface Richable {
    //定义一个想买什么就买什么的方法
    void buy();
}


/*
通过this引用类的成员方法
 */
public class Husband {
    //定义一个买房子的方法
    public void buyHuose(){
        System.out.println("北京二环内买一套四合院");
    }
    //定义一个结婚的方法,参数传递Richable接口
    public void marry(Richable r){
        r.buy();
    }
    //定义一个非常高兴的类
    public void soHappy() {
        //调用结婚的方法,方法的参数Richable是一个函数式接口,传递Lambda表达式
        /*marry(() -> {
            //使用This成员方法,调用本来买房子的方法
            this.buyHuose();
        });*/
        /*
        使用方法引用优化Lambda表达式this是已经存在的
        本类的成员方法buyHouse也是已经存在的
        所以我们可以直接使用this引用本类的成员方法buyHouse
         */
        marry(this::buyHuose);
    }

    public static void main(String[] args) {
        new Husband().soHappy();
    }
}

 

标签:void,public,sayHello,引用,父类,方法,成员
From: https://www.cnblogs.com/agzq/p/16721659.html

相关文章