抽象类和普通类:
抽象类的作用是提供一种模板,增加代码的重用性。
例如:写一个person类。
对于普通类:
public class Person
{
String age;
int age;
public void doJob()
{
System.out.println("i have a job")
}
public void eat()
{
System.out.println("i eat")
}
}
这里Person类有名字,年龄属性,还有一个介绍职业的方法,假如现在要写一个学生类,学生也是人要继承Person。
Class Stndents
{
public void doJob(){System.out.println("我们是学生")}
},
同理有一个教师类
public class Teachers
{
public void doJob(){System.out.println("我们是教师")}
}
在上述情况下,person中的doJob没有意义,但是eat却是有意义的,抽象类为这种情况提供了一种解决方法。允许类中同时含有抽象方法和具体方法。
public abstract class Person
{
String age;
int age;
public void doJob();
public void eat()
{
System.out.println("i eat")
}
}
增加代码的重用性,同时保证接口的灵活性。
抽象类和接口:
抽象类和接口都可以被继承,不同的是,接口内的方法不能实现,需要继承的类来具体实现其方法,而抽象类中的方法可以被具体实现,并且继承的类可以重写其方法。一个类可以继承一个抽象类,但是可以继承多个接口。通常,接口被运用于实现比较常用的功能,便于日后维护或者添加删除方法,而抽象类更倾向于充当公共类的角色。不适于在日后重新对里面的代码进行修改。