学习Java的Day03
知识点
继承:
描述类与类之间的关系
类A 继承 类B -----> 类A 是类B 的子类
为什么要继承:
当程序中如果多个类存在有共同的属性和功能的时候,需要把共同的属性和功能提取出来放在父类中。让其他子类继承这个父类,减少代码开发,提高 代码的复用性
当子类继承父类的时候,子类就会自动获取父类中的属性和方法
Java中只允许单继承,不能多继承,一个类只能直接继承一个父类
允许一个类有多个子类,但是不能一个类有多个父类
在程序中一旦声明了一个普通类,自动继承了Object类
在类中的属性私有化,对于子类来说不能直接使用,通过getter和setter方法来实现
在子类中重写了父类的方法,在子类中调用该方法时,调用子类重写之后的方法。(就近原则)
重写机制:子类重写父类中的方法,那么在子类中,必须按照父类中的方法语法格式进行编写。
(返回值,方法名,参数都不能修改,访问权限可以改变,但是子类的权限不能小于父类的权限)
如果在子类中的方法上有@override 那么要求父类中必须有该方法;(@override 重写,增强编译性)
如果子类想要子类去调用父类的方法 。super和static不能共存(在main方法外面声明一个方法,调用这个方法。)
抽象类 :
本质上还是一个类一般会在父类中把方法定义成抽象方法,没有方法体,抽象方法特征是以分号为结尾。如:public void test();
普通方法特征是以{} 为结尾;
普通类,不能存放抽象方法
只能在抽象类中声明抽象方法
在类前面添加abstract关键字,该类就是抽象类
在方法前面添加abstract关键字,该方法就是抽象方法
在程序中一般情况下,会把抽象类定义为父类
在抽象类里面不能直接实例化对象,,具有系统提供的默认的构造方法
在抽象类中既可以声明抽象方法,也可以声明 普通成员方法
子类不用必须去重写抽象类中的普通成员方法
abstract 关键字会和其他关键字一起使用时会遇到的问题
1.private :私有的,一般在类内部使用的,不允许外部类有权限访问的
2.abstract:抽象的,一般让子类重写使用的
3.final: 最终的,不可以修改。修饰方法时,该方法是最终的方法,不能重写。
4.static:静态的,修饰方法,变量 凡是静态的都属于类。
静态方法 一般通过类名去调用。