老师给了个题目!
1.创建类Person,类Teacher继承Person,类Professor继承Teacher,在类中设计方法method,该方法的参数个数不同,参数类型不同。理解并验证缺省构造器的作用,添加带参数构造器,程序中如何处理缺省构造的实例化。验证类中方法的覆盖和重载。构造器的作用是初使化对象,缺省构造的作用是在没有给出具体构造方法时,由编译器自动生成的!但是缺省构造器的作用要如何验证呢?“程序中如何处理缺省构造的实例化”!这句话想来想去搞不明白啥意思!顺便问下最后一问,覆盖和重载要如何验证来着?想来想去想不出个方法来!晕了!
请各位大哥大姐给个解释,在此先谢啦!
1.创建类Person,类Teacher继承Person,类Professor继承Teacher,在类中设计方法method,该方法的参数个数不同,参数类型不同。理解并验证缺省构造器的作用,添加带参数构造器,程序中如何处理缺省构造的实例化。验证类中方法的覆盖和重载。构造器的作用是初使化对象,缺省构造的作用是在没有给出具体构造方法时,由编译器自动生成的!但是缺省构造器的作用要如何验证呢?“程序中如何处理缺省构造的实例化”!这句话想来想去搞不明白啥意思!顺便问下最后一问,覆盖和重载要如何验证来着?想来想去想不出个方法来!晕了!
请各位大哥大姐给个解释,在此先谢啦!
然后你在同一个方法中用不同的参数,就可以验证重载了
Person(String name){}
}class Teacher extends Person{
Teacher(){}
}
这个会通不过编译问题都比较基础吧
需要自己试才知道的,别太懒了
因此验证缺省构造函数的作用,就是你写Teacher类的时候,什么构造函数都不写,这个时候系统就会为你写一个不带参数的构造函数。用Teacher t = new Teacher();就算是验证了至于覆盖,在Teacher类中写一个Teach方法,在Professer类中再写一个Teach方法,两个方法功能不同,这就算覆盖了。关于重载,你在写Professer类的时候,写一个Teach(String student, int lessonNumber);方法,再写一个Teach(String student)方法,这两个方法有相同的方法名,但是参数不同,这就是重载
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()");
}
}//几位大哥看下我这个有没有问题来着?
继承,不是java,c++才有的.
----------------------------------------------
晕!JAVA有的!
{
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");
}
}