抽象类
随时记录下吧,做开发半年多,想在几年后回顾下21岁时对程序的理解,也是想多理解以下基础,有什么不对的地方请大神指出。
抽象类出现在继承关系之中。
以下是父类Animal类
package b811;
import java.util.Random;
/**
* 首先从语文的角度来解释抽象 抽象的反义词为具体
* 那么我么我们就可以把抽象理解成为不具体
* 在本类中首先是抽象类Animal,
* 如果抽象比较难理解,那我们从具体入手,
* 对于动物,具体的实例就是猫 狗这个具体的实例,那么根据上面所说
* 抽象就是动物,所以定义一个抽象类为动物
* @author 811 2015年4月20日17:39:29
*/
public abstract class Animal {
/**
* 抽象类理解之后,那么抽象方法就更好理解了。
* 用相同的道理,如果说所有的东西都会吃东西
* 所以我们把他抽象成一个方法,至于怎么吃 , 吃什么 等等具体 的动作,交给具体的动物去做
*/
public abstract void eat();
/**
* @return 随机生成的量词
*/
public int randomNum(){
//获取随机函数类
Random random = new Random();
//10以内的整数
return random.nextInt(10);
}
}
接着是他的实现类,以猫类为例Cat
package b811;
import java.util.Random;
/**
* 接下来我们来看具体某一个动物
* 首先猫作为一个具体的动物,而且有又属于动物类别
* 就会产生一个父类子类的关系,及继承Animal类
* 如果需要更多的如狗,猪,羊,都可以来继承Animal进行吃的活动
* 对代码有了较好的业务规范
* @author 811 2015年4月20日17:39:35
*/
public class Cat extends Animal {
/**
* 提示:如果子类(Cat)实现了父类(Animal)的所有抽象方法
那么他的子类(Cat)将不在是抽象类,反之,其子类(Cat)还是抽象类
类名要用abstract修饰,需要Cat的子类继续其实现Animal的抽象方法
以此类推
*
*/
@Override
public void eat() {
//输出该动物吃了多少事物
System.out.println(randomNum()+"g");
}
//启动程序
public static void main(String[] args) {
Cat cat = new Cat();
cat.eat();
}
}