zoukankan      html  css  js  c++  java
  • Java基础接口回调(接口 对象名 = new 类名)理解

    接口 对象名1 = new 类名和类名 对象名2 = new 类名的区别是什么?

    实例

    /**
     *Person.java 接口
     */
    public interface Person {
        void introduce();
    }
    
    /**
     * Programmer.java 实现类1
     */
    public class Programmer implements Person{
        @Override
        public void introduce() {
            System.out.println("我是一名Java程序员");
        }
    
        public void play() {
            System.out.println("我还是一个吉他手");
        }
    }
    
    /**
     * Student.java 实现类2
     */
    public class Student implements Person {
        @Override
        public void introduce() {
            System.out.println("我是一名学生");
        }
    }
    
    /**
     * Main.java
     */
    public class Main {
        public static void main(String[] args){
            Person person; //声明接口变量
            person = new Programmer();
            person.introduce();
            /*因为person是接口变量,如果写成person.play()会爆红;*/
            ((Programmer) person).play();
         Programmer person2 = new Programmer();
    /*因为person2是实现类变量,所以写成person.play()不会爆红*/ person2.play(); System.out.println("----------------"); person = new Student(); person.introduce(); } }

    总结:

    使用 接口 对象名 = new 类名 的方式实例化的对象只能调用接口中有的方法,而不能调用类中特有的方法。

    而使用 类名对象名 = new 类名 的方式创建出来的对象可以调用所有的方法。

    希望本文章对您有帮助,您的转发、点赞是我的创作动力,十分感谢。更多好文推荐,请关注我的微信公众号--JustJavaIt
  • 相关阅读:
    【NOIP2017】奶酪
    【NOIP2017】时间复杂度
    【NOIP2005】过河
    【洛谷习题】垃圾陷阱
    dfs序
    bzoj2441 小W的问题
    彩色迷宫
    蛋糕与蛋挞
    树上倍增
    因数个数定理
  • 原文地址:https://www.cnblogs.com/liaowenhui/p/11335922.html
Copyright © 2011-2022 走看看