1.简述重载(Overload)与重写(Override)的区别。
重载(Overload):在同一个类中,方法名相同,参数列表不同(参数个数不同,参数类型不同,参数顺序不同),与返回值类型无关
重写(Override):在父类与子类之间,方法名相同,输入参数和返回值的类型(或子类型)完全相同,子类的权限应当比父类更严格
重写(Override):在父类与子类之间,方法名相同,输入参数和返回值的类型(或子类型)完全相同,子类的权限应当比父类更严格
2.完成刺客刺杀总统的场景,要求:刺杀成功后,将刺客的名字和总统的名字都显示出来
//测试类
package org.westos.homework3;
public class AssassinationTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
President president=new President("林肯",56,"男");
Killer killer=new Killer();
killer.setName("约翰·韦克斯");
killer.setAge(32);
killer.setSex("男");
Assassination.assassination(president, killer);
}
}
//总统类
package org.westos.homework3;
public class President {
private String name;
private int age;
private String sex;
public President() {
}
public President(String name, int age, String sex) {
this.name = name;
this.age = age;
this.sex = sex;
}
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
if(age<0 || age>=120)
{
System.out.println("年龄无效");
}
else{
this.age = age;
}
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
if(sex.equals("男") || sex.equals("女"))
{
this.sex = sex;
}
else {
System.out.println("无效性别");
}
}
}
//杀手类
package org.westos.homework3;
public class Killer {
private String name;
private int age;
private String sex;
public Killer() {
}
public Killer(String name, int age, String sex) {
this.name = name;
this.age = age;
this.sex = sex;
}
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
if (age < 0 || age >= 120) {
System.out.println("年龄无效");
} else {
this.age = age;
}
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
if (sex.equals("男") || sex.equals("女")) {
this.sex = sex;
} else {
System.out.println("无效性别");
}
}
}
//刺杀类
package org.westos.homework3;
public class Assassination {
public static void assassination(President president,Killer killer)
{
System.out.println(president.getName()+"被"+killer.getName()+"刺杀了");
}
}
3.建立一个长方形的类 包括属性,长、宽
1) 在构造方法中,给长方形的属性初始化。
2) 写两个方法,分别求出长方形的周长和面积。
3) 写一个方法,以长方形的对象为参数,求出两个长方形的周长差。
//测试类
package org.westos.komework3_2;
public class RectangleTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
Rectangle rectangle=new Rectangle(5,3);
Rectangle rectangle2=new Rectangle(6,4);
System.out.println("长度为"+rectangle.getLength()+",宽度为"+rectangle.getWidth()+"的矩形的面积为:"+rectangle.rectangleArea());
System.out.println("长度为"+rectangle.getLength()+",宽度为"+rectangle.getWidth()+"的矩形的周长为:"+rectangle.rectanglePerimeter());
System.out.println("长度为"+rectangle.getLength()+",宽度为"+rectangle.getWidth()+"与长度为"+rectangle2.getLength()+",宽度为"+rectangle2.getWidth()+"的矩形周长之差为:"+rectangle2.recangleSubtract(rectangle, rectangle2));
}
}
//矩形类
package org.westos.komework3_2;
public class Rectangle {
private double length;
private double width;
public Rectangle(){
}
public Rectangle(double length, double width) {
this.length = length;
this.width = width;
}
//获取矩形的长
public double getLength(){
return length;
}
//获取矩形的宽
public double getWidth(){
return width;
}
//求矩形面积
public double rectangleArea(){
if(length<0 || width<0){
return 0;
}
return length*width;
}
//求矩形周长
public double rectanglePerimeter() {
if(length<0 || width<0){
return 0;
}
return (length+width)*2;
}
//求两个矩形周长之差
public double recangleSubtract(Rectangle rectangle,Rectangle rectangle2)
{
return Math.abs(rectangle.rectanglePerimeter()-rectangle2.rectanglePerimeter());
}
}
4. 创建拥有继承结构的两个类,两个类拥有相同定义的show()方法,但是方法体中 的内容不同,分别创建一个父类对象和子类对象,分别调用show()方法,观察结果。
//测试类
package org.westos.homework3_3;
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
Person person = new Person();
Student student = new Student();
person.show();
student.show();
}
}
//Person类
package org.westos.homework3_3;
public class Person {
private String name;
private int age;
private String sex;
public Person() {
super();
}
public Person(String name, int age, String sex) {
super();
this.name = name;
this.age = age;
this.sex = sex;
}
public void show(){
System.out.println("我是父类");
}
}
//Student类
package org.westos.homework3_3;
public class Student extends Person {
private String num; //学号
public Student() {
super();
}
public Student(String num) {
super();
this.num = num;
}
public void show(){
System.out.println("我是子类");
}
}