继承: 现实生活中的继承,是从长辈处获得某些属性或技能的过程;
* 代码中的继承是一个定义的比较精确的类从一个定义比较广泛的类中,获得某些属性、行为的过程; 例如: 交通工具和自行车 家禽和鸡 人类和男人
* 钱和美元等
* 特点:继承是子类继承父类时继承了父类的所有属性,但是父类中的private属性不能直接访问,不代表子类中没有这个属性,我们可以通过父类中公共方法,来改变这个子类中的值;
* 子类在创建的时候,必须先调用父类构造方法;(super之前不能加任何代码,一加就错(编译不通过))
* public A(String a){
* super(a); //调用父类构造方法(如果父类中有一个无参的构造方法,super()可以省略)
* }
* 多态除了用重写的方法表示,还有子类继承父类时子类特有的方法;
* 方法的重写:同一个方法有不同的表示方法,在其子类里在写一相同方法
* 特点一:
* 返回值类型必须一模一样;
* 方法名必须一模一样;
* 参数列表中,参数的个数,类型,顺序必须一模一样,形参的名字可以不一样;
* 特点二:
* 我们在使用被重写过的方法时,满足就近调用的一个原则,就是如果本类中已经有了该方法的定义,则直接使用,
* 如果本类中没有用该方法的定义,到这个类的父类中寻找该方法的定义,
* 如果找到了,则调用之,
* 如果没有,在向父类的直接父类中寻找,一直找到Java过程的所有的父类的父类,叫做Object;
* 抽象方法和抽象类:
* abstract(抽象)
* 当我们使用abstract修饰方法的时候,这个方法被称为抽象方法,
* 当我们使用abstract修饰一个类的时候,这个类被称为抽象类;
* 抽象方法书写格式:先是访问控制域 abstract 返回值类型 方法名 ();(抽象方法在声明的时候不容许加方法体)
*抽象类:可以拥有抽象方法的类就是抽象类;
* 抽象方法在继承后一定要被实现;
(抽象类方便继承,一般最共有的方法为抽象类,抽象类是为了减少代码冗余度,抽象类没有方法体)