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
  • 相关阅读:
    asp.net 对母版页的控件事件
    treeview操作集合
    使用GAppProxy时安全证书无效的解决办法
    向Excel模板中添加数据
    C# 重写 winform 关闭按钮
    完整ASP.Net Excel导入程序(支持2007)
    随笔二则
    标记枚举(flags)的使用
    System.Reflection.Missing.Value与Type.Missing
    Windows下Android源码下载方法
  • 原文地址:https://www.cnblogs.com/liaowenhui/p/11335922.html
Copyright © 2011-2022 走看看