说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

这个题目让我有点晕!

编辑:说三道四文库 发布时间:2018-04-27 03:05
HTML文档下载 WORD文档下载 PDF文档下载
老师给了个题目!
1.创建类Person,类Teacher继承Person,类Professor继承Teacher,在类中设计方法method,该方法的参数个数不同,参数类型不同。理解并验证缺省构造器的作用,添加带参数构造器,程序中如何处理缺省构造的实例化。验证类中方法的覆盖和重载。

构造器的作用是初使化对象,缺省构造的作用是在没有给出具体构造方法时,由编译器自动生成的!但是缺省构造器的作用要如何验证呢?

“程序中如何处理缺省构造的实例化”!这句话想来想去搞不明白啥意思!

顺便问下最后一问,覆盖和重载要如何验证来着?想来想去想不出个方法来!

晕了!
请各位大哥大姐给个解释,在此先谢啦!
5555

哪位帮点忙呀!
你在所有类中都写个方法doSomething()就可以验证了覆盖
然后你在同一个方法中用不同的参数,就可以验证重载了
class Person{
  Person(String name){}
}

class Teacher extends Person{
  Teacher(){}
}
这个会通不过编译

问题都比较基础吧
需要自己试才知道的,别太懒了
这个...
 我觉得看再多别人给你写的代码,不如自己用记事本写点代码来的快,因为这些都不是很复杂的东西.你自己摸索着会比看别人代码学得快.
比如Teacher类,有一个带参数的构造函数,那么系统就不会为你写缺省构造函数。这个时候如果用Teacher t = new Teacher();编译不会通过。
因此验证缺省构造函数的作用,就是你写Teacher类的时候,什么构造函数都不写,这个时候系统就会为你写一个不带参数的构造函数。用Teacher t = new Teacher();就算是验证了

至于覆盖,在Teacher类中写一个Teach方法,在Professer类中再写一个Teach方法,两个方法功能不同,这就算覆盖了。

关于重载,你在写Professer类的时候,写一个Teach(String student, int lessonNumber);方法,再写一个Teach(String student)方法,这两个方法有相同的方法名,但是参数不同,这就是重载
继承,不是java,c++才有的.
谢谢上面几位对小弟的关照!

代码我是有自己写的,只不过他题目中有说我实在是搞不懂要让我写什么,所以就贴出来了,呵呵
//Person.java
public class Person 
{
public Person()
{
System.out.println("缺省构造方法Person()");
}

void method()
{
System.out.println("method()方法(Person类)");
}
}

class Teacher extends Person
{
public Teacher()
{
System.out.println("缺省构造方法Teacher()");
}

void method()
{
System.out.println("method()方法覆盖!");
}

void method(int i)
{
System.out.println("method(int i)方法重载,参数i= "+i);
}
}

class Professor extends Teacher
{
public Professor()
{
System.out.println("缺省构造方法Professor()");
}
}

//几位大哥看下我这个有没有问题来着?
zhuxr2003(zxr) ( ) 信誉:100    Blog 
继承,不是java,c++才有的.
----------------------------------------------
晕!JAVA有的!
class  Person
{
Person(){
System.out.println("create Person");
}
void method(){
System.out.println("Person.method");
}
}

class Teacher extends Person
{
Teacher(){ //调用它创建对象前会先调用 Person();
System.out.println("create Teacher");
}
Teacher(String name){//调用它创建对象前会先调用 Person();
System.out.println("create teacher :"+name);
}
void method(){ //覆盖;
System.out.println("Teacher.method()");
}
void method(int i){ //重载;
System.out.println("Teacher.method(int i)");
}

}

public class Professor extends Teacher
{
Professor(){
System.out.println("inside Professor");
}
Professor(String name){ //指定调用父类的Teacher(String name)构造器;
super(name);
System.out.println("Teacher: "+ name +" is a "+"professor");
}
public static void main(String[] args){
Person o1 = new Person();
o1.method();
Teacher o2 = new Teacher();
o2.method();
o2.method(2);
o2 = new Teacher("ouyang");
o1 = o2;
o1.method();//多态机制 结果为:Teacher.method(); 这就是覆盖的神奇
Professor o3 = new Professor();
Professor o4 = new Professor("guangyao");
}
}
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘