2021-01-17

类的封装与继承实例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,结果显示
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值