java基础之继承补充和抽象类

    继承的补充和抽象类

 

1.子类和父类中出现了同名的变量该如何访问?(super)
使用super关键字可以直接指定父类空间
格式: super.成员变量

访问成员变量的时候特点: 如果所指定的空间找不到,就会一直向上找,但是不会向下找;

2.子类中和父类中出现同名的方法(重写)
重写(Override): 子类中出现了和父类同名的方法,称为方法的重写;
重载(Overload): 在同一个类中,出现了同名的方法,但是方法的参数列表不同(个数,类型,顺序);

重写过程中的注意事项?
1> 子类如果重写了父类的方法,子类权限需要大于等于父类, 一般建议等于即可
权限大小关系: public > protected > default默认权限(不写) > private
2> 父类中私有的成员方法,子类不能重写, 子类写了也是属于子类自己的并不是重写

3.构造方法调用的问题,在继承结构体系中
1> 如果直接创建子类对象的时候,会默认先调用父类空参数的构造构造方法创建父类空间.
子类构造方法中,默认会调用父类的构造方法, 格式: super();
2> 不管子类通过什么构造方法创建对象, 都会默认调用父类空参数构造方法
3> 手动调用构造方法格式: super(参数), 一般情况下就是给父类空间中的成员变量赋值.

注意: 构造方法不能够被继承

4. 什么是抽象类:
被abstract修饰的类称为抽象类.

定义抽象类:
public abstract class 类名{}
抽象类的特点:
1> 抽象类不能被实例化,也就是不能被new.(为什么, 是因为抽象类中可以有抽象方法)
2> 抽象类中可以有抽象方法.
3> 抽象方法必须在抽象类中, 抽象类中可以没有抽象方法
4> 抽象类除了不能直接创建对象之外,和普通的类没有什么区别.
5> 如果子类继承自抽象类之后需要重写抽象类中的所有抽象方法, 除非子类也是抽象类.

抽象方法:
被abstract修饰的方法是抽象方法.
定义格式: public abstract void method(...);

抽象方法的特点:
1>被abstract修饰
2>没有方法体
3>作用就是强制(约束)子类去完成某件事情.

posted on 2017-12-22 19:56  悠悠一小生  阅读(811)  评论(0编辑  收藏  举报