Java 语言基础之So easy继承

与C++不同的是java的继承只能是单继承 ,不能进行多继承。好苦逼~

上个例子:

子类Cat:

package com;

public class Cat extends Animal{
		@Override // 注解:用编译器去检测父类中是否包含当前具体方法(howl())的声明
	  public void howl()
	  {
		  System.out.println(this.name+".... miaomiao");
	  }
		
	
}

子类Dog:

package com;

public class Dog extends Animal{
 @Override
 public void howl()
 {
	  System.out.println(this.name+".... wangwang");
 }
}

父类Animal:

package com;

public abstract class Animal {
   public String name;
   public void walk()
   {
	   System.out.println(this.name+"...walk");
   }
   public void sleep()
   {
	   System.out.println(this.name+"...sleep");
   }
 
   public abstract void howl();
}



main:

package com;

public class main {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		
		
		// 子类对象赋值给父类变量 
		Animal animal = new Cat();
		animal.name="Cat";
		animal.walk();
		// howl() 方法在父类中是抽象方法(abstract),没有实际定义,只是声明而已。
		// 在Cat类中实际定义howl()方法的实现。
		// 在父类变量在实现调用时,指向的是子类对象,所以howl()方法是子类的方法。
		// 最后输出的是Cat.... miaomiao 而不是Cat.... xxxxx
		animal.howl();
		
		getMsg(animal);
		
		Animal animal1 = new Dog();
		animal1.name="Dog";
		animal1.walk();
		animal1.howl();
		getMsg(animal1);
		
		
	}
	
	
	public static void getMsg(Animal animal)
	{
		animal.howl();
	}

}

/**
 * 小结:
 * 通常定义父类和子类,并使用父类声明,子类赋值的方式进行代码复用。
 * 优点:除了代码复用之外,还可以将具体的功能添加到父类声明的变量中,方便代码实现。
 * 例如:父类Animal 声明一个变量animal之后,使用Cat子类或者Dog子类赋值给父类animal,这样在
 * 写入getmsg()函数时,只要将对象类型声明为父类Animal 即可传入不同子类Cat Dag,来实现不同的具功能。
 * 
 */


运行结果:





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值