java_day7练习作业(面向对象下-1)

这篇博客主要通过七个练习详细介绍了Java中的面向对象特性,包括继承和多态的应用。从练习1的基础继承到练习7深入的多态概念,每个练习都深入探讨了这些核心概念。
摘要由CSDN通过智能技术生成

练习

练习1(继承)

1.1.训练描述:
一、分析以下需求,并用代码实现:
1.定义Person类
属性:姓名name、年龄age;
		方法:空参构造方法、满参构造方法、setXxx()、getXxx()、工作work。
		 
2.根据人类,派生一个老师类Teacher 
		重写工作方法(老师的工作是要好好讲课)。
			
3.根据人类,派生一个学生类Student 
		重写工作方法(学生的工作是要好好学习)。
		
4.编写测试类分别对上述2类具体人物进行测试

5.要求运行结果:
					学生的工作要好好学习
					老师的工作要好好讲课
package com.scy;	//基类 Person 

public class Person {
   
    private String name;
    private int age;
    public Person(){
   }
    public Person(String name, int age){
   
        this.name = name;
        this.age = age;
    }
    public String getName() {
   
        return name;
    }
    public void setName(String name) {
   
        this.name = name;
    }

    public int getAge() {
   
        return age;
    }
    public void setAge(int age) {
   
        this.age = age;
    }
    public void work(){
   
        System.out.println("人是要工作的");
    }
}
package com.scy;		//继承类 Student 

public class Student extends Person {
   
    public Student(){
   }
    public Student(String name,int age){
   
        super(name,age);
    }
    @Override
    public void work(){
   
        System.out.println("学生的工作是要好好学习");
    }
}
package com.scy;	//继承类 Teacher 

public class Teacher extends Person {
   
    public Teacher(){
   }
    public Teacher(String name,int age){
   
        super(name,age);
    }
    @Override
    public void work(){
   
        System.out.println("老师的工作是要好好讲课");
    }
}
package com.scy;	//测试类

public class MainApp {
   
    public static void main(String[] args) {
   
        Person p = new Student("wang",25);
        p.work();
        p = new Teacher();
        p.setName("liu");
        p.setName("30");
        p.work();
    }
}

练习2(继承/方法重写)

一、分析以下需求,要求用代码实现:
1.定义手机类
		方法:打电话(手机的功能是给某人打电话)
		
2.根据手机类,派生一个新手机类
		重写打电话功能(新功能可以开启视频电话,同时要包含老功能)
		
3.编写测试类分别对上述2类手机进行测试
4.要求运行结果:
				给林青霞打电话
				----------------------
				开启视频功能
				给林青霞打电话
package com.scy;	// Phone 父类

public class Phone {
   
    private String name;
    public Phone(){
   }
    public Phone(String name){
   
        this.name = name;
    }
    public void call(String name){
   
        System.out.println("给"+name+"打电话");
    }
}
package com.scy;	// NewPhone 子类

public class NewPhone extends Phone {
   
    public NewPhone(){
   }
    public NewPhone(String name){
   
        super(name);
    }
    @Override
    public void call(String name){
   
        System.out.println("开启视频功能");
        super.call(name);
    }
}
package com.scy;	//测试类

public class MainApp {
   
    public static void main(String[] args) {
   
       Phone p = new Phone("林青霞");
       p.call(p.getName());
       System.out.println("-----------------");
       Phone p1 = new NewPhone("林青霞")
  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值