· Person类:name属性、age属性、setter、getter
· Student类:name属性、age属性、school属性、setter、getter
{
String name;
int age;
public String getInfo()
{
return "姓名:"+this.name+",年龄:"+this.age;
}
};
//Student类与Person类相比是扩充了Person类的功能,所以此处继承即可
class Student extends Person
{
// 如果此处任何内容都不写,则至少应该与Person类的内容一致
};
public class Demo01
{
public static void main(String args[])
{
// 使用子类对象
Student s = new Student() ;
// 以下的全部操作都是在Person类中定义的
s.name = "王乾" ;
s.age = 27 ;
System.out.println(s.getInfo()) ;
}
};
{
String name;
int age;
public String getInfo()
{
return "姓名:"+this.name+",年龄:"+this.age;
}
};
//Student类与Person类相比是扩充了Person类的功能,所以此处继承即可
class Student extends Person
{
// 如果此处任何内容都不写,则至少应该与Person类的内容一致
String school;
};
public class Demo02
{
public static void main(String args[])
{
// 使用子类对象
Student s = new Student() ;
// 以下的全部操作都是在Person类中定义的
s.name = "王乾" ;
s.age = 27 ;
//在Student类中增加的school属性
s.school = "江南大学" ;
System.out.println(s.getInfo()+",学校:"+s.school) ;
}
};
老头子 => 资产给孩子了 =>孩子可以通过老头子的钥匙|打开保险柜哈~
{
private String name;
private int age;
//私有属性要加入setter和getter操作就可以访问了哈~
public void setName(String name)
{
this.name = name ;
}
public void setAge(int age)
{
this.age = age ;
}
public String getName()
{
return this.name;
}
public int getAge()
{
return this.age;
}
public String getInfo()
{
return "姓名:"+this.name+",年龄:"+this.age;
}
};
//Student类与Person类相比是扩充了Person类的功能,所以此处继承即可
class Student extends Person
{
// 如果此处任何内容都不写,则至少应该与Person类的内容一致
String school;
public void fun()
{
setName("王乾");
setAge(27);
}
public void print(){
System.out.println(getInfo()+",学校:"+school);
}
};
public class Demo03
{
public static void main(String args[])
{
// 使用子类对象
Student s = new Student() ;
}
};
{
private String name;
private int age;
public Person()
{
System.out.println("*****父类的构造方法*****");
}
//私有属性要加入setter和getter操作就可以访问了哈~
public void setName(String name)
{
this.name = name ;
}
public void setAge(int age)
{
this.age = age ;
}
public String getName()
{
return this.name;
}
public int getAge()
{
return this.age;
}
public String getInfo()
{
return "姓名:"+this.name+",年龄:"+this.age;
}
};
//Student类与Person类相比是扩充了Person类的功能,所以此处继承即可
class Student extends Person
{
public Student()
{
System.out.println("*****子类的构造方法*****");
}
// 如果此处任何内容都不写,则至少应该与Person类的内容一致
String school;
public void fun()
{
setName("王乾");
setAge(27);
}
public void print(){
System.out.println(getInfo()+",学校:"+school);
}
};
public class Demo04
{
public static void main(String args[])
{
// 使用子类对象
Student s = new Student() ;
}
};
假设张三是李四的孩子,你说:如果现在连李四都没有,能有张三吗?
{
private String name;
private int age;
public Person()
{
System.out.println("*****父类的构造方法*****");
}
//私有属性要加入setter和getter操作就可以访问了哈~
public void setName(String name)
{
this.name = name ;
}
public void setAge(int age)
{
this.age = age ;
}
public String getName()
{
return this.name;
}
public int getAge()
{
return this.age;
}
public String getInfo()
{
return "姓名:"+this.name+",年龄:"+this.age;
}
};
//Student类与Person类相比是扩充了Person类的功能,所以此处继承即可
class Student extends Person
{
public Student()
{
super();
System.out.println("*****子类的构造方法*****");
}
// 如果此处任何内容都不写,则至少应该与Person类的内容一致
String school;
public void fun()
{
setName("王乾");
setAge(27);
}
public void print(){
System.out.println(getInfo()+",学校:"+school);
}
};
public class Demo04
{
public static void main(String args[])
{
// 使用子类对象
Student s = new Student() ;
}
};
{
private String name;
private int age;
//希望在调用Person类的构造方法时可以直接为属性初始化
public Person(String name,int age)
{
System.out.println("*****父类的构造方法*****");
this.setName(name);
this.setAge(age);
}
//私有属性要加入setter和getter操作就可以访问了哈~
public void setName(String name)
{
this.name = name ;
}
public void setAge(int age)
{
this.age = age ;
}
public String getName()
{
return this.name;
}
public int getAge()
{
return this.age;
}
public String getInfo()
{
return "姓名:"+this.name+",年龄:"+this.age;
}
};
//Student类与Person类相比是扩充了Person类的功能,所以此处继承即可
class Student extends Person
{
public Student()
{
super();
System.out.println("*****子类的构造方法*****");
}
// 如果此处任何内容都不写,则至少应该与Person类的内容一致
String school;
public void fun()
{
setName("王乾");
setAge(27);
}
public void print(){
System.out.println(getInfo()+",学校:"+school);
}
};
public class Demo05
{
public static void main(String args[])
{
// 使用子类对象
Student s = new Student() ;
}
};
{
private String name;
private int age;
//希望在调用Person类的构造方法时可以直接为属性初始化
public Person(String name,int age)
{
System.out.println("*****父类的构造方法*****");
this.setName(name);
this.setAge(age);
}
//私有属性要加入setter和getter操作就可以访问了哈~
public void setName(String name)
{
this.name = name ;
}
public void setAge(int age)
{
this.age = age ;
}
public String getName()
{
return this.name;
}
public int getAge()
{
return this.age;
}
public String getInfo()
{
return "姓名:"+this.name+",年龄:"+this.age;
}
};
//Student类与Person类相比是扩充了Person类的功能,所以此处继承即可
class Student extends Person
{
public Student(String name,int age,String school)
{
//这样隐含的代码super();写与不写没两样了哈~
//super();
//此时最好可以明确的指出要调用父类中的有两个参数的构造方法
//直接指明调用父类中有两个参数的构造方法。
super(name,age);
this.setSchool(school);
System.out.println("*****子类的构造方法*****");
}
// 如果此处任何内容都不写,则至少应该与Person类的内容一致
private String school;
public void setSchool(String school)
{
this.school = school;
}
public String getSchool()
{
return this.school;
}
public void print(){
System.out.println(getInfo()+",学校:"+school);
}
};
public class Demo05
{
public static void main(String args[])
{
// 使用子类对象
Student s = new Student("王乾",27,"江南大学") ;
s.print();
}
};
{
public void fun1()
{
System.out.println("Hello");
}
};
class B extends A
{
// 此方法覆写父类中的fun1()方法
public void fun1()
{
System.out.println("World~~~");
}
};
public class Demo06
{
public static void main(String args[])
{
B b = new B();
b.fun1();
}
};
· public > default(什么都不写) > private
{
void fun1()
{
System.out.println("Hello");
}
};
class B extends A
{
// 此方法覆写父类中的fun1()方法
public void fun1()
{
System.out.println("World~~~");
}
};
public class Demo06
{
public static void main(String args[])
{
B b = new B();
b.fun1();
}
};
{
public void fun1()
{
System.out.println("Hello");
}
};
class B extends A
{
// 此方法覆写父类中的fun1()方法
void fun1()
{
System.out.println("World~~~");
}
};
public class Demo06
{
public static void main(String args[])
{
B b = new B();
b.fun1();
}
};
{
private void fun1()
{
System.out.println("Hello");
}
public void fun()
{
fun1();
}
};
class B extends A
{
//此时相当于子类重新定义了一个方法fun1()
void fun1()
{
System.out.println("World~~~");
}
};
public class Demo06
{
public static void main(String args[])
{
B b = new B();
b.fun();
}
};
{
private String name;
private int age;
//希望在调用Person类的构造方法时可以直接为属性初始化
public Person(String name,int age)
{
System.out.println("*****父类的构造方法*****");
this.setName(name);
this.setAge(age);
}
//私有属性要加入setter和getter操作就可以访问了哈~
public void setName(String name)
{
this.name = name ;
}
public void setAge(int age)
{
this.age = age ;
}
public String getName()
{
return this.name;
}
public int getAge()
{
return this.age;
}
public String getInfo()
{
return "姓名:"+this.name+",年龄:"+this.age;
}
};
//Student类与Person类相比是扩充了Person类的功能,所以此处继承即可
class Student extends Person
{
public Student(String name,int age,String school)
{
//这样隐含的代码super();写与不写没两样了哈~
//super();
//此时最好可以明确的指出要调用父类中的有两个参数的构造方法
//直接指明调用父类中有两个参数的构造方法。
super(name,age);
this.setSchool(school);
System.out.println("*****子类的构造方法*****");
}
// 如果此处任何内容都不写,则至少应该与Person类的内容一致
private String school;
public void setSchool(String school)
{
this.school = school;
}
public String getSchool()
{
return this.school;
}
// 子类覆写了父类中的getInfo()方法
public String getInfo()
{
return "姓名:"+this.getName()+",年龄:"+this.getAge()+",学校:"+this.school;
}
};
public class Demo07
{
public static void main(String args[])
{
// 使用子类对象
Student s = new Student("王乾",27,"江南大学") ;
System.out.println(s.getInfo());
}
};
{
private String name;
private int age;
//希望在调用Person类的构造方法时可以直接为属性初始化
public Person(String name,int age)
{
System.out.println("*****父类的构造方法*****");
this.setName(name);
this.setAge(age);
}
//私有属性要加入setter和getter操作就可以访问了哈~
public void setName(String name)
{
this.name = name ;
}
public void setAge(int age)
{
this.age = age ;
}
public String getName()
{
return this.name;
}
public int getAge()
{
return this.age;
}
public String getInfo()
{
return "姓名:"+this.name+",年龄:"+this.age;
}
};
//Student类与Person类相比是扩充了Person类的功能,所以此处继承即可
class Student extends Person
{
public Student(String name,int age,String school)
{
//这样隐含的代码super();写与不写没两样了哈~
//super();
//此时最好可以明确的指出要调用父类中的有两个参数的构造方法
//直接指明调用父类中有两个参数的构造方法。
super(name,age);
this.setSchool(school);
System.out.println("*****子类的构造方法*****");
}
// 如果此处任何内容都不写,则至少应该与Person类的内容一致
private String school;
public void setSchool(String school)
{
this.school = school;
}
public String getSchool()
{
return this.school;
}
// 子类覆写了父类中的getInfo()方法
public String getInfo()
{
return super.getInfo()+",学校:"+this.school;
}
};
public class Demo07
{
public static void main(String args[])
{
// 使用子类对象
Student s = new Student("王乾",27,"江南大学") ;
System.out.println(s.getInfo());
}
};
2、子类对象的实例化过程
3、方法的覆写
4、super关键字
刘鹏程lpc 2014-11-25
SA霖 2014-09-27
SA霖 2014-09-27
xlazj 2013-06-05
jangwe01 2012-08-09
yumuju 2012-04-24
itcoco05 2010-02-28
dennis 2009-01-13
redking 博主 回复了 未知 2009-01-13
小段 2009-01-09