1、继承
1、面向对象的第二大特征:继承性
2、什么是继承?子类继承父类的属性和行为
3、优缺点:
优点:提高了代码的复用性
缺点:由于继承会有依赖关系,提高耦合度
/**
* 1、使用继承以后,父类所有的属性(除了私有的属性)和方法都可以获取到
* 2、子类除了通过继承获取父类的属性和方法以外,还可以单独定义自己独有的属性
* 和方法
* 3、一个子类还可以派生别的子类?可以
* 4、一个父类可以有多个子类,一个子类可以有多个父类?不可以java的继承是单继承
*/
2、super关键字
4、super关键字可以修饰属性、方法、构造方法
* (1)当前子类和父类的属性出现同名时,默认调用子类的属性,可以通过"super.属性名"
* 的方式显示调用父类声明同名属性
* (2)子类重写父类方法后,如果子类想再次调用被重写前的方法,可以通过"super.方法名"
* (3)super可以修饰构造方法,通过在子类构造方法中使用“super(形参)”来显示调用父类
* 对应的构造方法
* 注意:super(形参)必须声明在首行,所以this(形参)和super(形参)只能出现一个
如:
private int id=1111;//与父类属性同名
super()如下:
public Student() {//其父类为Person
super();//调用父类的无参构造方法,加不加这句代码都会默认调用父类无参构造方法
System.out.println("Student类的无参构造方法执行了");
}
//重写父类吃饭的方法
public void eat() {
super.eat();//打印父类的吃饭方法
System.out.println(super.getId());//打印父类的id
System.out.println("我是祖国的花朵,我应该吃有营养的东西");
}
3、如果一个类没有显示地继承某一个类,那么默认继承Object类
如:
public class Person {}
相当于
public class Person extends Object{}
4、访问修饰符
访问修饰符:修饰类、变量、方法、接口
- public:公共的,在当前项目下任何地方都可以访问
- protected:受保护的,在同一个包下或者其他子类可以访问
- default:缺省,在同一包下
- private:私有,在当前类下访问
5、方法重写
方法重写:如果父类的方法满足不了子类要求时,子类可以对父类的方法进行重写
重写规则:
- (1)要求子类重写的方法名、参数列表、返回值类型必须和父类完全一致
- (2)子类重写方法的访问修饰符权限不能低于父类方法的修饰符权限
- (3)子类方法必须同为static 或 非static
6、重写与重载的区别
重写(override)和重载(overload)的区别: - (1)方法重载必须在同一个类中,方法重写必须存在继承关系
- (2)方法重载要求方法名相同、参数列表必须不同,和返回值类型、参数名无关
- (3)方法重写要求方法名、参数列表、返回值和父类必须一致