week3作业

来源:互联网 发布:怎么查网络是否丢包 编辑:程序博客网 时间:2024/06/06 04:53

1.简述重载(Overload)与重写(Override)的区别。

方法重载:同一个类中,方法名相同,参数列表不同(参数类型不同、参数个数不同、参数顺序不同)
eg:
package overloading;
public class Person {
   String name;
   int age;
   String sex;
   public Person(){
 }
   public Person(String n,int a){    
  name=n;
  age=a;
   }
   
   public Person(String n,int a,String s){  
  name=n;
  age=a;
  sex=s;
   }
   }

方法重写:重写的注意事项(三要素):
1. 只能存在于子类和父类之间
2. 子类的方法名称、输入参数和返回值类型完全一致或子类方法返回值类型是父类方法返回值类型的子类。
3. 权限不能比父类方法更加严格。
注意:重写的前提是先继承了父类的方法。
eg:
//父类

package override;   


   public class Person {
       public Object getInfo(){
        System.out.println("Person父类的getInfo()方法");
         return "我是父类中的方法";
       }
    
    
       public  void makeMoney(){
      System.out.println("开工厂赚钱....");
       }
}



子类

package override;

public class Student extends Person{

@Override
    public String getInfo(){
    System.out.println("子类方法");
    return "学生的getInfo()方法";
    }

@Override
public void makeMoney(){
    System.out.println("开互联网公司赚钱....");
    }
    
}


//测试

package override;      

   public class TestOverride {

     public static void main(String[] args) {
         Student stu=new Student();
        System.out.println(stu.getInfo());
      
     }
}

2.完成刺客刺杀总统的场景,要求:刺杀成功后,将刺客的名字和总统的名字
  都显示出来。

//总统类
package President;


public class President {
static String name;
public President(){
}
public President(String name){
this.name=name;
}
}

//刺客类
package President;


public class Assassin {
String name;
String sex;
int age;
public  Assassin(){

}
public Assassin(String name,String sex,int age){
this.name=name;
this.sex=sex;
this.age=30;
}
public void AssassinationPresident(){
System.out.println("一名"+age+"岁的"+sex+"性刺客,名叫"+name+",刺杀了"+President.name+"的总统");
}
}
//测试类
package President;


public class Test {


public static void main(String[] args) {
Assassin ass=new Assassin("特工","男",30);
President pre=new President();
pre.name="XXX";
ass.AssassinationPresident();       //利用new关键词创建对象及调用方法


}


}

3.建立一个长方形的类 包括属性,长、宽 

  1) 在构造方法中,给长方形的属性初始化。

  2) 写两个方法,分别求出长方形的周长和面积。

 3) 写一个方法,以长方形的对象为参数,求出两个长方形的周长差。

package rectangle;


public class RectangleDemo {


double len;   // 矩形的长      初始化对象属性
double width;   // 矩形的宽
public RectangleDemo(){    //构造方法
  }
  
public RectangleDemo(double l,double w){
  len=l;
  width=w;
  }
public double calculatePerimeter(){     //计算长方形周长
double per=(this.len+this.width)*2;
System.out.println("长方形周长为:"+per);
return per;
}
public double  calculateArea(){       //计算长方形面积
double are=this.len*this.width;
System.out.println("长方形面积为:"+are);
return are;
}
public static void main (String[] args){    //主方法出口
RectangleDemo r1=new RectangleDemo(3.0,4.0);   
RectangleDemo r2=new RectangleDemo(5.2,7.0);
 r1.calculatePerimeter();
 r2.calculatePerimeter();
double errandrectangle=r1.calculatePerimeter()-r2.calculatePerimeter();     //计算周长差
if(errandrectangle>0){                                                                                                                        //判断周长差正负
   double errandrectangleresult1=errandrectangle;
   System.out.println("re1与re2两个长方形的周长差为:"+errandrectangleresult1);
   }else{
   double errandrectangleresult2=-errandrectangle;
   System.out.println("re1与re2两个长方形的周长差为:"+errandrectangleresult2);
}
}
}
}

4. 创建拥有继承结构的两个类,两个类拥有相同定义的show()方法,但是方法体中
   的内容不同,分别创建一个父类对象和子类对象,分别调用show()方法,观察结果。

//父类
package extendsdemo;


public class Text {


public static void main(String[] args) {
Father per=new Father(12);       //创建一个父类对象
   son1 x=new son1(11);       //创建子类对象
   son2 j=new son2();            
   per.show();          //父类对象调用show()方法
   x.show();               //子类对象调用show()方法
   j.show();                
}
}

//子类1
package extendsdemo;


public class son1 extends Father {
int b;
public son1(){
super(24);
System.out.println("子类1无参构造");
}
public son1(int b){
this.b=b;
System.out.println("子类2带参构造"+b);
}
public void show(){
System.out.println("只要步履不停,终会得偿所愿!");
}
}
//子类2
package extendsdemo;


public class son2 extends Father{
int c;
public son2(){
super();
    System.out.println("子类2无参构造!");
     }
     public son2(int c){
    this.c=c;
    System.out.println("子类2带参构造:"+c);
     }
     public void show(){
    System.out.println("显示....");
}
}
//测试类
package extendsdemo;


public class Text {


public static void main(String[] args) {
Father per=new Father(12);       //创建一个父类对象
   son1 x=new son1(11);       //创建子类对象
   son2 j=new son2();            
   per.show();          //父类对象调用show()方法
   x.show();               //子类对象调用show()方法
   j.show();                

}
}
原创粉丝点击