• 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
  • 相关阅读:
    1128项目跟进
    冲刺一 (day 3)
    1118 冲刺1-需求文档(初稿)
    1117 新冲刺 day1
    0622 总结与回顾
    0621 第三次冲刺
    0617 主存空间的分配和回收
    学习进度条
    软件工程学期总结
    学术诚信与职业道德
  • 原文地址:https://www.cnblogs.com/liaowenhui/p/11335922.html
Copyright © 2020-2023  润新知