抽象类:
为什么有抽象类?
class Animal
{
String name;
int age;
public void cry() {
System.out.println("不知道怎么叫·····");
}
}
以上这个类中,cry()方法在子类继承中,子类一般会对这个方法进行重写,那么这个方法存在的必要性不是很大,但是又不能不存在,因为在多态中的时候减少代码耦合度会使用该方法,因此就出现了抽象类。
如何定义一个抽象类呢?
abstract class Animal
{
String name;
int age;
abstract public void cry();
}
这个方法解决了父类的方法的不确定性。
抽象类依然会被继承。
当一个类继承的父类是抽象类的话,需要我们把抽象类中的所有抽象方法全部实现。
抽象类是java中一个比较重要的类,记住下面的两句话:
1.用abstract关键字来修饰一个类时,这个类就叫抽象类。
2.用abstract关键字来修饰一个方法时,这个方法就是抽象方法。
3.抽象方法在编程中用的不是很多,但是在公司笔试时,却是考试的重点。
抽象类-注意事项:
1.抽象类不能被实例化
2.抽象类不一定要包含abstract方法。也就说,抽象类可以没有abstract方法。
3.一旦类包含了abstract方法,则这个类必须声明为abstract
4.抽象方法不能有主体,如图所示:
接口:
接口就是给出一些没有内容的方法,封装到一起,到某个类要使用的时候,再根据具体情况把这些方法写出来。语法:
class 类名 implements 接口
{
方法;
变量;
}
小结:
接口是更加抽象的抽象类,抽象类里面的方法可以有方法体,接口里的所有方法都没有方法体。接口体现了程序设计的多态和高内聚低耦合的设计思想。
接口-注意事项:
1.接口不能被实例化
2.接口中所有的方法都不能有主体,图示:
3.一个类可以实现多个接口
4.接口中可以有变量【但变量不能用private和protected修饰】关于这一点我还想说:
a.接口中的变量,本质上都是static的,而且是final类型,不管你加不加static修饰。
b.在java开发中,我们经常把常用的变量,定义在接口中,作为全局变量使用。
访问形式:接口名.变量名
c.一个接口不能继承其他的类,但是可以继承别的接口。
接口就是给出一些没有内容的方法,封装到一起,到某个类要使用的时候,再根据具体情况把这些方法写出来。语法:
class 类名 implements 接口
{
方法;
变量
}
小结:
接口是更加抽象的抽象类,抽象类里面方法可以有方法体,接口的所有方法都没有方法体,接口体现了程序设计的多态和高内聚低耦合的设计思想。
如果一个接口实现了另一个接口,那么在调用该接口时,就必须将另一个接口的函数进行重写。