//子类继承了父类,就继承了父类的方法和属性。
在子类中,可以使用父类中定义的方法和属性,也可以创建新的属性和方法。同时可以重写父类的方法
因而,子类通常比父类的功能更多。
-
- 面向对象的第二大特征:继承性?
-
1.什么是继承?允许子类拥有父类的属性和行为
-
2.优点:提高了代码的复用性
-
缺点:就是类和类之间的耦合度变高了
-
高内聚低耦合,框架就是减少每个类之间的耦合度
-
3.继承的语法
-
class 子类 extends 父类{
-
}
*所有类的基类都是Object -
父类又可以叫基类
-
4.继承的特点
-
(1).子类继承父类以后,父类声明的属性和行为子类都可以获取 父》儿子
-
(2).子类除了通过继承获取了父类的属性和方法外,还可以自己定义独有的属性和方法 师父》徒弟
-
子类的功能永远比父类多 对
-
(3).java是单继承的,不允许多重继承一个子类只能继承一个父类,一个父类可以有多个子类
-
一个子类可以在派生一个子类吗?可以 新派生的子类同时可以获取学生类里面的独有属性和方法,
-
还可以或人类里面的属性和方法 孙子>父亲>爷爷
-
5.方法重写:如果父类的方法体满足不了子类要求,子类可以重写父类的方法
-
要求:
-
(1)子类重写父类的方法,要求方法名、形参列表、返回值类别必须和父类一致
-
(2)子类重写的方法的访问修饰符权限不能低于父类的访问修饰符,可以大于等于就是不能小于
-
(3)子类方法和父类方法必须同为static或者非static
-
常见面试题*
-
方法重载(overload)和方法重写(override)的区别
-
(1).方法重载要求方法名相同、形参列表必须不同(参数个数、类型、类型的顺序)和返回值无关
-
(2).方法重写要求方法名、形参列表、返回值类型必须和父类一致,访问修饰符不能小于父类的
-
(3).方法重载必须在同一个类里面进行重载
-
(4).方法重写必须存在继承关系,发生在子类和父类之间
-
super关键字和this关键字的区别?*
-
super关键字可以修饰属性、方法、构造方法,也是就近原则
-
1.当子类和父类的属性名同名时,默认会使用子类的属性吧,咱们可以通过
-
"super.属性名"调用父类的属性
-
2.子类重写父类方法后,如果子类想再次调用父类重写前的方法,可以super.方法名调用父类重写前的方法
-
3.super修饰构造方法,通过在子类构造方法中使用"super(形参)"来显示的调用父类的构造方法
-
(1)super()必须放在构造方法的首行
-
(2)在构造方法内部"this(形参)"或"super(形参)"只能出现一个
-
(3)在构造方法中,如果不显示的使用"super(形参)"的方式调用父类对应的构造方法,默认会调用父类的无参构造方法,只是给你隐藏掉了
-
Object:所有的类都继承Object
-
创建子类对象的时候,默认也会创建父类对象 ,这位就是为什么子类可以调用父类的对象