Java基础--接口回调(接口 对象名 = new 类名)理解
2024-09-06 07:23:00
接口 对象名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 类名 的方式创建出来的对象可以调用所有的方法。
最新文章
- 从头开始搭建一个mybatis+postgresql平台
- Pop Sequence
- DataTable中的数据赋值给model z
- Bootstrap_组件
- cocos2d-x 知识小结(1)zorder和tag
- C# 启动外部程序的几种方法
- !! python 之半年总结
- 根据查询结果创建新表create table .. as (select....)
- 解决centos7安装wmwaretools找不到kernel header
- 重操JS旧业第三弹:Array
- MongoDB集群与LBS应用系列(一)
- 安装Java Cer证书
- [HNOI2013]游走 期望+高斯消元
- layui选项卡同步问题
- python之地基(三)
- 关于<;超文本>;定义
- Android WebView的HTML中的select标签不起作用
- 【笔记】Python基础五:装饰器
- Idea 12配置SPring MVC 和Tomcat Server
- tomcat8 JVM 优化