萌新学习java(二)
一、面向对象编程:面向对象编程可以分为三大板块。
(二) 继承
为什么需要继承?
1.需要大量只有细微属性或成员不同的类时,继承的使用减小了代码的冗余。
2.维护时方便。一旦一个父类中的基本属性发生了变化,如果没有继承,那以他为原型的大量相似类都要修改代码,容易出错,维护不便。
3.为以后学习的多态创造条件。
继承的知识细节
(1)继承中的权限问题,当子类继承父类时往往有一定的权限限制,子类能继承的成员是父类中除了私有成员外的全部成员。(实际上在内存层面继承了父类私有成员,只不过无法访问)
(2)子类访问父类成员的方式,在子类内部访问父类成员。通过子类的对象名访问父类成员。通过子类类名访问父类成员。
(3)Java只支持单继承,不支持多继承,单继承指一个子类只能有一个父类,多继承是指一个子类有多个父类。可以多层继承。子类无法继承父类的构造方法。除非使用super语句。
(4)super的使用,调用父类构造函数只能使用super。每一个子类的构造方法,都隐含的调用super()。如果要写super语句,则该语句一定是构造方法里的第一条语句,否则就会出错。在调用super() 时,必须确保父类有一个空参数的构造方法,否则会出错。任何一个语句中都只能出现一个super。
(5)子类对于父类方法的重写,方法重写指的是子类重新定义父类的方法。重写的方法必须和父类具有相同的函数名,参数列表,返回值。子类中不允许出现和父类同名同参但返回值不同的构造函数,如果出现则会报错。为什么?因为同名同参,但不同返回值,Java不知道究竟应该调用那条函数,所以编译会错误。重写方法时,重写的方法权限不能比被重写方法的权限低,否则会报错,为何如此?因为如果重写方法的权限比被重写方法的权限低会导致多态无法实现。
这就是我在第一次学完Java后总结的继承知识点。