类的封装与继承实例3
1,新建一个父类Animal,属性name和food设置为private
行为eat()和sleep()
2,新建子类Mouse,属性相同,行为eat()和sleep()以及dig()打洞
3,新建子类Panda,属性一样,行为一样
4,在书写代码时,结果和预想一致但是,在类的实例化时产生疑问,什么时候给参数什么时候不给
public class test_demo { public static void main(String [] args){
//Mouse M=new Mouse(“老鼠”,“垃圾”); Mouse M =new Mouse();
M.eat();
M.sleep();
M.dig();System.out.println("----------------------"); Panda P=new Panda(); P.eat(); P.sleep(); } }
在查看代码仔细思考发现这个应该和构造函数相关,如果你构造的是有参的构造函数在实例化对象的时候就应该赋予参数否则就会报错。
如果使用的是无参数的构造函数,在无参数的构造函数中直接赋值即可
/* public Mouse(){ this.setFood(“垃圾”); this.setName(“老鼠”); }
*/ public Panda() {
this.setName(“熊猫”); this.setFood(“竹子”); // TODO Auto-generated constructor stub }
5,完整代码显示
Animal类
package java_demo;
/*类的继承
* 1,新建一个父类 动物类属性 名字 食物
* 行为 吃饭 睡觉
* 2,新建子类老鼠 属性一样
* 行为 吃饭 睡觉 打洞
* 3,新建子类熊猫 属性一样
* 行为一样
* 4,新建类A_demo_01在入口main中进行类的实例化
*
*
*
*
*
*/
public class Animal {
private String name;
private String food;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getFood() {
return food;
}
public void setFood(String food) {
this.food = food;
}
public Animal(String name, String food) {
super();
this.name = name;
this.food = food;
}
public void eat(){
System.out.println(this.name+"吃"+this.food);
}
public void sleep(){
System.out.println(this.name+"在睡觉");
}
}
Mouse类
package java_demo;
public class Mouse extends Animal {
public Mouse(String name, String food) {
super(name, food);
// TODO Auto-generated constructor stub
}
/*
public Mouse(){
this.setFood("垃圾");
this.setName("老鼠");
}
*/
public void dig(){
System.out.println(this.getName()+"会打洞");
}
}
Panda类
package java_demo;
public class Panda extends Animal {
public Panda(String name, String food) {
super(name, food);
// TODO Auto-generated constructor stub
}
}
测试类
package java_demo;
public class test_demo {
public static void main(String [] args){
Mouse M=new Mouse("老鼠","垃圾");
//Mouse M =new Mouse();
M.eat();
M.sleep();
M.dig();
System.out.println("----------------------");
Panda P=new Panda("熊猫","竹子");
P.eat();
P.sleep();
}
}
6,结果显示