第五章:抽象类和接口
一,抽象类的回顾
在上一章,我们已经提到了抽象类的语法,概念,和注意事项,我们简单回顾一下。
public abstract class Pet {
public abstract void toHospital() ;
}
抽象类和普通类的区别:
- 抽象类不能被实例化
- 但可以创建一个引用变量,其类型是一个抽象类,指向非抽象的子类实例
- 普通类可以被实例化
抽象方法和普通方法区别
抽象方法没有方法体,普通方法有方法体
抽象类与抽象方法的使用注意事项:
- 抽象类中可以没有抽象方法,但包含了抽象方法的类必须被定义为抽象类
- 如果子类没有实现父类的所有抽象方法,子类必须被定义为抽象类
- 没有抽象构造方法,也没有抽象静态方法
- 抽象类中可以有非抽象的构造方法,创建子类的实例时可能调用
二,接口
在生活中,我们遇到的事物都可以抽象到程序中,那么如何防盗门的实现防盗门的效果?
1.门有“开”和“关”的功能,锁有“上锁”和“开锁”的功能
将门和锁分别定义为抽象类2.将门定义为抽象类,锁定义为接口
防盗门继承门,实现锁的接口
第一种很显然,我们的防盗门要继承门,还要继承锁,我们都知道继承是单根继承,只能继承一个类,那么我们可以先认识一下接口。
1.认识接口
public interface MyInterface {