抽象类

抽象类

为什么会存在抽象类,抽象类的功能是什么?

下面的这段代码定义了一个动物类,动物类中有自己的吃的方法

public class Animal {

	//属性:昵称,年龄
	private String name;
	private int month;
	
	public Animal() {
		
	}
	public Animal(String name,int month) {
		this.setMonth(month);
		this.setName(name);
	}
	//对应属性的get,set方法
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name=name;
	}
	public int getMonth() {
		return month;
	}
	public void setMonth(int month) {
		this.month=month;
	}
	//公共的方法:吃东西
	public void eat() {
		System.out.println("动物都有吃东西的方法");
	}
	
}

 

 

下面的代码定义了一个猫类; 猫类中有自己的吃的方法,

public class Cat extends Animal {

	//属性,体重
	private double weight;
	
	//无参构造
	public Cat() {
		
	}
	//带参构造
	public Cat(String name,int month,double weight) {
		super(name, month);
		this.weight=weight;
	}
	//对应属性的get,set方法
	public double getWeight() {
		return weight;
	}
	public void setWeight(double weight) {
		this.weight=weight;
	}
	//run方法
	public void run() {
		System.out.println("小猫快乐的奔跑");
	}
	
	//重写父类的方法
	public void eat() {
		System.out.println("猫吃鱼");
	}
	public void playBall() {
		// TODO Auto-generated method stub
		System.out.println("小猫玩线球");
	}
	
}

 

也就是说动物类和猫类都有属于自己的方法。动物有吃的方法,但它去不知道猫类怎么吃。

这种现象总结起来就是:某个父类只知道它的子类含有怎样的方法,但却无法准确的知道这些子类如何实现这些方法。

此时,我们在进行父类对象的实例化就没有意义了。我们可以把父类设置为抽象类,也就是用abstract关键字修饰。

抽象类的特点:

1.不允许直接的实例化对象,可以被继承。

2.可以通过向上转型,使父类引用指向子类对象。

实际应用中适当使用抽象类的好处:

1.通过子类与父类的继承关系限制了子类方法设计的任意性

2.同时也一定程度上限制了无意义父类的实例化

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值