java抽象类、抽象方法介绍和相关实现实例。

抽象类和抽象方法方法

简介

抽象方法是java类中的一个特殊类,为什么要把它称为抽象类?因为抽象类中有抽象方法,但是抽象类中也可以有普通方法
1.用abstract关键字来修饰一个类时,这个类叫做抽象类;用abstract修饰一个方法时,这个方法叫做抽象方法。
2.有抽象方法的类必须声明为抽象类,抽象类必须被继承,抽象方法必须被重写。
3.抽象方法秩序声明,不用也不能在抽象方法中实现。
4.抽象类不能被实例化,只能被继承,然后子类实例化。

抽象方法解决的问题

多个有关系的类的共同行为在抽象方法中给出了抽象方法(并非具体的方法)如图形类为抽象类,在图形类中定义了求周长的方法,对于三角形,圆形,矩形他们的求周长的方法不一样,但是他们之间是有联系的,他么都属于图形类。

下面我们来写一个抽象类的实例来实现抽象类的功能:
动物有猫和狗两种,它们都属于动物,猫的种类中有一种蓝猫。动物都有喜欢的做的行为这个共同行为。

我们先写动物的抽象类(Animal类

package summary;

public abstract class Animal {

	public String name;
	
	
	public Animal(String name) {
		this.name = name;
	}
	
	public abstract void enjoy();
}

Animal这个抽象类定义了一个抽象的方法:动物都喜欢做的事。
我们现在写猫和狗的类(Dog类和Cat类
因为Cat下面还有一个blueCat类所以我们将Cat类也定义为抽象类
子类继承父类时,如果这个父类中的所有的抽象方法,子类都能全部重写进行实现的话,那么这个子类就去重写并实现这些抽象方法,如果有子类不能实现的抽象方法,那么将这个子类也声明为抽象类。

package summary;

abstract class Cat extends Animal {

	public String eyesColor;
	
	
	public Cat(String n,String e) {
		
		super(n);
		this.eyesColor= e;
		// TODO 自动生成的构造函数存根
	}

	@Override
	public void enjoy() {
		// TODO 自动生成的方法存根
		System.out.println("猫喜欢叫喵喵喵");
	}

}
package summary;

public class Dog extends Animal {

	public String furColor;
	
	public Dog(String n,String f) {
		super(n);
		this.furColor =f;
		// TODO 自动生成的构造函数存根
	}

	@Override
	public void enjoy() {
		// TODO 自动生成的方法存根
		System.out.println("狗喜欢叫汪汪汪");
	}

}

下面创建测试类来测试我们写的抽象类的功能

public class Test {

	public static void main(String[] args) {
		// TODO 自动生成的方法存根

		Animal d1 = new Dog("狗蛋", "红色");
		Animal bluecat =new blueCat("蓝猫","蓝色的眼睛");
		d1.enjoy();
		bluecat.enjoy();
				
	}
}

输出结果

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务