什么是继承
1、Java世界中也有继承关系,和现实世界中的继承关系类似。
2、继承是从已有类中派生出新类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力。
3、继承是面像对象的三大特征之一。
继承的优点
1、继承提高了软件的复用性。
2、继承简化了人们对事物认识和描述,能清晰体现相关类间的层次结构关系
3、降低了程序的耦合性,提高代码的易维护性。
继承是单继承,一个子类只有一个父类。
方法的重写
当子类出现和父亲一模一样的方法时,子类对象调用该方法,会运行子类方法的内容如同父类的方法被覆盖一样,这种情况是方法的另一种特性-----重写。
覆盖的应用
当子类需要父亲的功能,而功能主体子类有自己持有的内容时,可以复写父类中的方法,即沿袭了父类的功能,又定义了子类持有的功能。
方法重写规则
方法名相同
形参列表相同
子类方法返回值类型应该比父类返回值类型小或相等,
子类的方法抛出的异常类应该比父类抛出的异常类更小或相等,
子类方法的返回权限应该比父类方法访问权限更大或相等。
封装
把对象的信息和内部逻辑结构隐藏起来
this
代表所在函数所属对象的引用,在方法内用到调用该方法的对象
构造方法
是一种特殊的方法,其主要功能是用来在歘关键对象的时候初始化对象,即为对象成员变量赋初始值。
构造方法与类名相同,可重载多个不同的构造方法。
继承的优点
1.提高了继承的复用性
2.简化了人们对事物的认识和描述,清晰体现相关类间的层次结构关系。
3.降低了程序的耦合性,提高代码的易维护性。
继承具有传递性
派生类是从基类那里继承特性,派生类也可以作为其他类的基类。从一个基类派生出多层类,这样就形成类层次结构。
就是A继承B,A可以调用B的方法和属性,但是B又继承了C所有A也可以调用C的方法和属性。
public class Person{
public void say(String name,int age){
System.out.println("方法的重写");
}
}
public class Student extends Person{
public void say(int age,String name){
super.say(name, age);
System.out.println("测试方法的重写");
}
}