这个题考察的是面向对象三大特性之一的继承。
创新互联是一家专业提供德阳企业网站建设,专注与网站建设、成都网站建设、H5页面制作、小程序制作等业务。10年已为德阳众多企业、政府机构等服务。创新互联专业的建站公司优惠进行中。
子类继承父类。
项目结构如何所示:
Mobile 为父类,有一个属性:mobilePhone 代表电话号码。
有4个方法(功能):
1、获取手机号码:public String getMobilePhone(){}
2、存储手机号码:public void setMobilePhone(String mobilePhone) {}
3、拨打电话号码:public void callOnMobilePhone(){}
4、挂断电话:public void callOffPhone(){}
具体代码如下所示:、
--------------------------------------mobilePhone 开始--------------------------------------
/**
* @author 冯修远
* 创建一个第一代手机类,要求包含手机号码信息,并包含获取电话号码,
* 存储电话号码、拨打电话号码和挂断电话等功能。并以此为父类,派生
* 出子类第二代手机类,增加拍照功能。以第二代手机类来生成对象并
* 模拟实现拨打电话、挂断电话拍照等功能。
*/
public class Mobile {
//手机号码
private String mobilePhone;
/**
* 获取手机号码
* @return
*/
public String getMobilePhone() {
return mobilePhone;
}
/**
* 存储手机号码
* @param mobilePhone
*/
public void setMobilePhone(String mobilePhone) {
this.mobilePhone = mobilePhone;
}
/**
* 拨打电话号码
*/
public void callOnMobilePhone(){
System.out.println("拨打电话号码:"+mobilePhone);
}
/**
* 挂断电话
*/
public void callOffPhone(){
System.out.println("挂断与:"+mobilePhone+"的通话");
}
}
--------------------------------------mobilePhone 结束--------------------------------------
PhotoMobile 为子类或者叫派生类,继承自父类:Mobile
同时也继承了父类的4个方法,但父类的属性因为我设置的是private,所以继承不了。
PhotoMobile 的代码如下图所示:
最后一个类,也就是测试类,用于创建第二代手机的对象,并调用相应的功能,如下图所示:
最终,程序的运行结果如下图所示:
我是冯修远,如果我的答案对您有帮助的话,请采纳以帮助更多的人,如果还有其它的问题,也请关注我,私信我,谢谢!
1、代码如下
public class phone
{
public void downloadMusic()
{
System.out.println("download music ");
}
public void playMusic()
{
System.out.println("play music ");
}
}
public class CellPhone{
private String brand;
private String version;
private String imei;
private long imsi;
private long phoneNum;
//brand setter
public setBrand(String brand){
this.brand=brand;
}
//brand getter
public String getBrand(){
return brand;
}
//version setter;
public setVersion(String version){
this.version=version;
}
//version getter
public String getVersion(){
return version;
}
//getters and setters
...
}
编写User类添加属性name,代码如下java"publicclassUser{privateStringname;publicUser(Stringname){this.setName(name);}publicvoidchangeName(Useru){StringuName=u.getName();u.setName(this.name);this.name=uName;}publicStringgetName(){returnname;}publicvoidsetName(Stringname){this.name=name;}}其中changeName()用来交换对象的name属性.编写测试类,代码如下:java"publicclassTest{publicstaticvoidmain(Stringargs[]){Userzhangsan=newUser("张三");Userlisi=newUser("李四");zhangsan.changeName(lisi);System.out.println(zhangsan.getName());System.out.println(lisi.getName());}}new出张三李四两个对象,name分别为张三李四,调用changeName()方法.输出张三李四的名字,会发现已经改变~~请采纳,不懂再问
NewPhone类
package com.baidu.question;
public class NewPhone extends Phone {
private boolean mute = true;
@Override
public void call() {
if(mute){
super.call();
}else{
System.out.println("语音已关闭");
}
}
//这里是直接设置
public void setMute(boolean mute){
this.mute=mute;
}
//担心你的题目是要求两种方法,写的第二种,下面两个方法负责开关
public void openMute(){
this.mute=true;
/*
* 也可以这样写
* setMute(true);
* 下边的方法一样
* */
}
public void closeMute(){
this.mute = false;
}
}
Phone类
package com.baidu.question;
public class Phone {
public void call(){
System.out.println("打电话");
}
}
测试类
package com.baidu.question;
public class PhoneTest {
public static void main(String[] args) {
Phone phone = new Phone();
phone.call();
NewPhone newPhone = new NewPhone();
newPhone.call();
newPhone.setMute(false);
newPhone.call();
newPhone.openMute();
newPhone.call();
newPhone.closeMute();
newPhone.call();
}
}
测试结果
打电话
打电话
语音已关闭
打电话
语音已关闭