快捷导航

面向对象问题?

package com.heima;/*1、        定义一个ClassName接口,接口中只有一个抽象方法getClassName()。设计一个类Company,该类实现接口ClassName中的方法getClassName(),功能是获取该类的类名称。编写应用程序使用Company类。*/public class Demo1 {        public static void main(String[] args) {                ClassName name = new Company();                System.out.println(name.getClassName());        }}package com.heima;public class Company implements ClassName {        public String getClassName() {//                返回一个实例返回方法指定类型的值;结束方法的执行                return "company";        }}package com.heima;public interface ClassName {        public String getClassName();}为什么不能通过对象名直接调用,非要加上输出语句?name.getClassName();这样调用为什么不行啊

免责声明:本内容仅代表回答者见解不代表本站观点,请谨慎对待。

版权声明:作者保留权利,不代表本站立场。

回复

使用道具 举报

参与会员2

因为 直接调用name.getClassName(); 只会返回值,并不会在屏幕上打印
加上输出语句 只是 把 getClassName() 的返回值 打印出来, 方便观察, 学习
QAQ
回复

使用道具 举报

楼上说的是对的,name.getClassName();其实是获取了你的类名的,只是看不出来(没有执行打印),println是将值打印出来,如下:
//将值赋给myClassName,用来检测name.getClassName()是否执行了
String myClassName = name.getClassName();
//将myClassName的值打印,如果输出,则说明name.getClassName()已经执行,相反,,,,
System.out.println(myClassName);
回复

使用道具 举报

可能感兴趣的问答

发新帖
TA的信息
  • 会员所属: 注册会员
  • 认证信息: 邮箱认证手机认证
  • 微信访问
  • 手机APP