1.请教老师和各位同学:一下两个问题;

1.请教老师和各位同学:一下两个问题;

package com.imooc.tel;

public class Camera implements IPhoto {

	@Override
	public void photo() {
		// TODO Auto-generated method stub
		System.out.println("相机有拍照的功能");
	}

}
package com.imooc.tel;

public abstract class Computer implements INet {
//1.问题1这里为何不加abstract就会报错?
	@Override
	public void network() {
		// TODO Auto-generated method stub
		System.out.println("电脑有上网的功能");
	}
	@Override
	public void web() {
		System.out.println("电脑有了链接WIFI的功能");
	}

}
package com.imooc.tel;
//不断的去继承上一个;
public class FourhPhone extends ThirdPhone implements IPhoto{
	/*public void ptoto() {
		System.out.println("手机有了拍照的功能");
	}*/

	public void network() {
		System.out.println("手机有了上网的功能");
	}

	@Override
	public void photo() {
		// TODO Auto-generated method stub
		System.out.println("手机有了拍照的功能");
	}
}
package com.imooc.tel;


public interface INet {
	/*
	 * 接口中抽象方法可以不写abstract关键字;
	 * 接口访问修饰符 默认  public;
	 * 当类实现接口时,需要去实现类中所有的抽象方法,否则需要将该类设置为抽象类;
	 */
	
	public void network();
//接口中可以包含常量,默认添加public static final关键字;
	
	public static final int temp=6;
	int temp1=20;
	void web();
}
package com.imooc.tel;
/**
 * 具有照相能力的接口;
 */
public interface IPhoto {
public void photo();
}
package com.imooc.tel;

public class  SecondPhone extends Telephone{
	public void message() {
		System.out.println("手机有了发短信的功能");
	}

}
package com.imooc.tel;

public class SmartWatch implements INet {
	public static final int temp=16;
	@Override
	public void network() {
		
		// TODO Auto-generated method stub
		System.out.println("电脑有上网的功能");
	}
	public void web() {
		System.out.println("电脑有了链接WIFI的功能");
	}

	public void Web() {
		// TODO Auto-generated method stub
		
	}

}
package com.imooc.tel;

public class Telephone {
	private String brand;
	private int price;

	public String getBrand() {
		return brand;
	}

	public void setBrand(String brand) {
		this.brand = brand;
	}

	public int getPrice() {
		return price;
	}

	public void setPrice(int price) {
		this.price = price;
	}

	public void call() {
		System.out.println("手机有打电话的功能");
	}

	public Telephone() {

	}

}
package com.imooc.tel;

public class ThirdPhone extends SecondPhone{
	public void video() {
		System.out.println("手机有了看视频的功能");
	}
	public void music() {
		System.out.println("手机有了听英语的功能");
	}
	public void game() {
		System.out.println("手机有了玩游戏的功能");
	}
}
测试类:package com.imooc.test;

import com.imooc.tel.*;

public class PhoneTest {

	public static void main(String[] args) {
		
		// TODO Auto-generated method stub
		FourhPhone one = new FourhPhone();
		one.call();
		one.game();
		one.message();
		one.music();
		one.network();
		one.photo();
		one.video();
		System.out.println("****************");
		IPhoto ip = new FourhPhone();
		ip.photo();
		ip = new Camera();
		ip.photo();
		/*
		 * INet two = (INet) new FourhPhone(); two.Web();
		 */
		// 问题二:此处这样写为什么编译出错,是因为找不到对象吗?
		System.out.println(INet.temp);
		System.out.println(INet.temp1);
		INet net = new SmartWatch();
		System.out.println(net.temp);
		SmartWatch three =new SmartWatch();
		System.out.println(three.temp);
		SmartWatch four =new SmartWatch();
		System.out.println(four.temp);
	}

}


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
好帮手慕珊 2018-01-25 10:48:26

你好!我运行了你的代码,没有发现问题。请问你的代码是编译错误吗,你可以点击出错行的http://img1.sycdn.imooc.com//climg/5a6945430001f19000270034.jpg这个图标,看看有什么错误提示。把错误提示贴出来。

如下是运行结果:

http://img1.sycdn.imooc.com//climg/5a694569000180c102050378.jpg

祝学习愉快!

  • 提问者 Ironxi_work #1
    老师是这样的,我的问题点在Computer的包中和测试类Tese中,一共有两个问题:问题1:为什么不在Computer类名前加abstract会报错?问题二:为什么这样写会报错?INet two = (INet) new FourhPhone(); two.Web();;具体可见注释的地方分别在15行和26行,请老师指点一下;
    2018-01-25 18:50:45
  • 好帮手慕珊 回复 提问者 Ironxi_work #2
    我试了一下,把Computer前面的abstract去掉也没有报错。如果类中有抽象方法的时候,才是必须把类定义成抽象类。你的Computer类中并没有抽象方法,你再试试。第二个问题,是因为INet、FourthPhone以及它的父类都没有Web这个方法,所以才会报错,错误提示建议将Web()改为web()
    2018-01-25 19:05:05
提问者 Ironxi_work 2018-01-24 21:57:42

问题:为何这样写出错(一个在Computer类中,一个在测试类中)?

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师