Android开发基础----Java基础(6)

学习内容

  • 继承与多态
  • 继承使用场景与构造方法
  • 多态的使用
1.继承 Extends

继承是面向对象的三大特征之一,也是软件实现复用的重要手段,Java的继承具有单继承的特点,即每个子类只有一个直接父类。

2.继承使用场景

(1)、子类需要额外添加成员变量
(1)、子类需要添加自己独有的行为方式

//基类 父类
class Car{
   protected int wheels;//成员变量可以被继承
   public string color;
   public Car(int wheels){          //构造方法不可以被继承
      this.wheels=wheels;//this:表示访问当前类或者对象的属性或者方法
   }
   public void startEngine(){       //方法可以被继承
}
//子类
class Audi extends Car{
   String feeling;
   //子类使用super()调用父类的构造方法
   public Audi(int wheels,String feeling){
       super(wheels);
   }
}

构造方法的执行顺序:父类A—>子类B—>子类C
而且子类不能继承父类private修饰的属性或者方法。
如果子类需要在父类的基础上重新实现父类的方法,子类必须重写,这个过程称为重写或覆盖
在执行时先从当前类里查找这个方法,如果没有就从父类去查找,如果父类中也没有这个方法,就报错。重载与重写的区别:
重载:同一个类里面 方法名相同 参数不同
重写:两同:方法名相同 参数相同
两小:a.子类的返回值必须比父类的返回值小或者相同; b.子类抛出的异常要比父类抛出的异常要小或者相同
一大:子类的修饰符范围要比父类更大或者相同
如果没有做到,那么就会出错

我们编程讲究:低耦合、高内聚
继承的优点:复用性更强
缺点:a.打破了封装性,是子类与父类耦合性大;b.安全性降低

设计原则:
(1)尽量隐藏父类的内部数据(private)
(2)不要让子类可以随意访问(final)
(3)尽量不要再构造函数中调用被子类重写的方法

3.多态的使用

多态:编译与运行时是两个东西,不同的对象
子类可以向父类转化
在编译与运行时的对象是具有继承关系的、且只能是子类对象传给父类对象时才可以使用多态(不能父类的对象传给子类)
在使用的时候,如果需要使用之类的方法或者属性,必须强制转化为对应的子类对象

你可能感兴趣的:(Android开发基础----Java基础(6))