面向对象继承(extends)
类是对象的抽象体现
继承的优点:
-
提高了代码复用性
-
让类之间产生关系,有了这个关系,才有了多态的特性
Java中只单继承,(多继承容易出现安全隐患)
多层继承,查阅父类功能,创建子类对象使用功能
类中成员三个部分:变量,函数,构造函数
方法区先加载父类,再加载子类
如果子类中出现了与父类中非静态同名变量,访问子类变量用this,访问父类用super
覆盖:子类重写父类方法,沿袭父类功能,重写功能内容
覆盖时要注意:
1必须保证子类权限大于等于父类权限,才可以覆盖,否则编译失败
2静态只能覆盖静态
重载:只看同名函数的参数列表
重写:子父类方法一模一样
子类继承父类时构造函数省略了super();
final关键字:最终
-
可以修饰类,函数,变量
-
被final修饰的类不可以被继承
-
被final修饰的方法不能被覆写
-
被final修饰的变量是一个常量只能赋值一次,既可以修饰成员变量,也可以修饰局部变量
抽象类(abstract)
当多个类中功能相同,单功能主体不同,抽取功能定义。
abstract class student
{
abstractvoid study();
}
抽象类特点:
-
抽象方法一定定义在抽象类中
-
抽象方法和抽象类必须被abstract修饰
-
抽象类不能用new创建对象,因为抽象方法没意义
-
抽象类中的所有抽象方法必须在子类中全部实现,才能用new,部分实现仍然是抽象
模板方法:在定义功能是,功能的一部分是确定的,而确定的部分在使用不确定部分,不 确定部分暴露出去,由子类去实现
接口(interface,implements(实现))
当抽象类中所有方法都是抽象的,就可以通过接口表示
接口定义:
-
接口中常见的定义:常量,抽象方法
-
接口中的成员都有固定的修饰符。
常量:public static final
方法:public abstract
-
接口中的成员都是public
接口可以被类多实现(一个类可以实现多个接口)
接口与接口之间是继承关系,类与接口是实现关系
一个类只能继续一个类,也能实现多个接口
接口可以多继承
接口特点:
-
对外暴露的规则
-
程序的功能扩展
-
可以用来多实现
基本功能用继承,扩展功能用接口