今天学完了Java接口,抽象类,多态,再次做一下小结
1.final关键字
final代表最终的意思,它可以修饰变量,方法,甚至是类。
特点:
(1)被final修饰的类不能被继承
(2)被final修饰的变量是常量
(3)被final修饰的方法不能被重写
(4)final修饰基本类型的局部变量时,它的值不能被改变(即第二个特点)
(5)final修饰引用类型的局部变量时,它的地址值不能被改变,但对象内容可以改变
2.多态
多态即为同一个对象在不同时间体现出来的不同状态
A:多态的前提:
(1)要有继承或实现关系
(2)要有方法重写
(3)要有父类或父类接口引用指向子类对象
多态的分类:
(1)具体类多态
class Fu{}
class Zi extends Fu{}
Fu f=new Zi();
(2)抽象类多态
abstract class Fu{}
class Zi extends Fu{}
Fu f=new Zi();
(3)接口类多态
interface Fu{}
class Zi implements Fu{}
Fu f=new Zi();
B:多态的成员访问特点
成员变量:编译看左边,运行看左边
构造方法:子类构造会默认访问父类构造
成员方法:编译看左边,运行看右边
静态方法:编译看左边,运行看左边
为什么呢?
因为成员方法有重写!
C:多态的优点及弊端
优点:
提高了代码的维护性(继承的体现)
提高了代码的扩展性(多态的体现)
弊端:
父类不能使用子类的特有功能
3.抽象类
把多个具有相同共性的东西提取在一个类中,这是继承的做法,但是有时在这些共性的东西中,虽然方法声明可能一样但是每个具体的对象在具体实现时的内容可能不同,所以我们在定义这些共性的方法时就不能给出具体的方法体而没有具体方法的方法体就是抽象方法 如果一个类中有抽象方法,那么这个类必须被定义为抽象类,修饰关键字为abstract
A:抽象类的特点
(1)抽象类和抽象方法必须用abstract修饰
(2)抽象类中不一定由抽象方法,但是有抽象方法的一定是抽象类
(3)抽象类不能实例化
(4)抽象类的子类
A:是一个抽象类
B:是一个具体类(这个类必须重写抽象类的全部抽象方法!!!!)
4.接口
接口适用于一些特殊的额外的功能扩展
接口的特点:
A:接口用关键字interface修饰
interface inter{}
B:类实现接口用关键字implements修饰
class Zi implements inter{}
C:接口不能实例化
D:接口的实现类:
(1)抽象类
(2)具体类(这个类必须重写抽象类的全部抽象方法!!!!)