十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
这个题考察的是面向对象三大特性之一的继承。
成都创新互联是一家集网站建设,墨竹工卡企业网站建设,墨竹工卡品牌网站建设,网站定制,墨竹工卡网站建设报价,网络营销,网络优化,墨竹工卡网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。
子类继承父类。
项目结构如何所示:
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 的代码如下图所示:
最后一个类,也就是测试类,用于创建第二代手机的对象,并调用相应的功能,如下图所示:
最终,程序的运行结果如下图所示:
我是冯修远,如果我的答案对您有帮助的话,请采纳以帮助更多的人,如果还有其它的问题,也请关注我,私信我,谢谢!
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();
}
}
测试结果
打电话
打电话
语音已关闭
打电话
语音已关闭
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
public class NumRandom {
/**
* @param args
*/
public static void main(String[] args) {
Random random = new Random();
ListInteger listRed = new ArrayListInteger();
for(int i =1;i34;i++){
listRed.add(i);
}
for(int i =1;i7;i++){
int num = random.nextInt(listRed.size());
System.out.println("第"+i+"个红色球号码是" + listRed.get(num));
listRed.remove(num);
}
System.out.println("蓝色球号码是"+(random.nextInt(16)+1));
}
}
/*1、类与对象的基础题:
1)编程实现:以电话Phone为父类(例:电话有本机号码、打电话、接电话等属性和功能,
当然还有一些其它的特性), 移动电话Mobilephone和固定电话Fixedphone为两个子类,
并使移动电话实现接口:可移动Moveable。固定电话又有子类:无绳电话Cordlessphone。
设计并定义这四个类(Phone、Mobilephone、Fixedphone、Cordlessphone)和一个接口(Moveable),
明确它们的继承关系,定义子类时给出子类有别于父类的新特性。
*/
class Phone {//定义一个Phone类,其属性为电话号码,方法有打电话和接电话
private String phonenum;
public void callPhone() {}
//无参的构造方法
Phone() {}
//有参的构造方法 以后相似
Phone(String s) {
System.out.println("phonenum = " + s);
}
public void acceptPhone() {
System.out.println("父类方法");
}
}
//定义Mobilephone类,从Phone类继承,实现了Moveable接口
//实现接口要重写其中的全部方法,因为没有给出Moveable接口中的方法,所以就没写,即编译也不会成功,若想看到结果把下面的implements Moveable 注释掉
class MobilePhone extends Phone implements Moveable {
private String cellnum;
public void callPhone() {}//重写父类方法
public void setRing() {} //设置铃声
public void playGame() {} //玩游戏
MobilePhone(String s,String s1) {
super(s);
System.out.println("cellphone = " + s1);
}
}
//定义Fixedphone类,从Phone类继承
class FixedPhone extends Phone {
private String fixednum;
private String s;
FixedPhone() {}
FixedPhone(String s,String s2) {
super(s);
System.out.println("fixednum = " + s2);
}
public void acceptPhone() {
System.out.println("实现了多态性");
}//重写父类方法
public void selectNum() {
}
}
//定义Fixedphone子类
class CordlessPhone extends FixedPhone {
private char num;
public void setPassword() {} //设置密码
CordlessPhone() {
super();
}
CordlessPhone(String s2,String s3,char s4) {
super(s2,s3);
System.out.println("num = " + s4);
}
}
/*2)声明测试类:声明Phone类的数组(含5个元素),
生成五个对象存入数组:其中二个Phone类的对象、一个Mobilephone类的对象、一个Fixedphone类的对象和一个Cordlessphone类的对象,
打印输出每个对象的某个成员变量。将一个父类的引用指向一个子类对象,用这个塑型后的对象来调用某个方法实现多态性。 */
public class Test {
public static void main(String[] args) {
Phone[] p = new Phone[5];
p[0] = new Phone("123");
p[1] = new Phone("456");
p[2] = new MobilePhone("123456","138xxxxxxxxx");
p[3] = new FixedPhone("5861","5861xx");
p[4] = new CordlessPhone("5861xxx","12333",'5');
Phone p1 = new FixedPhone();//将一个父类引用指向子类对象
p1.acceptPhone();//调用方法 实现多态性
}
}
public class Telephon extend Thread{
private int telNum;
private int type;//0短信,1彩信,3电话
private String message;
public Telephon(int telNum,int type,String message){
this.telNum = telNum;
this.type = type;
this.message = message;
}
//发短信
private void sendMessage(int telNum,String message){
}
//发彩信
private void sendColor(int telNum,String message){
}
//打电话
private synchronized void call(int telNum){
}
//关闭电话
private void closeTel(){
}
public void run(){
if(type==0){
sendMessage(this.telNum,this.message);
}
if(type==1){
sendColor(this.telNum,this.message);
}
if(type==2){
call(int telNum);
}else{ closeTel();}
}
}