Java面向对象_4.Java继承上

  • 一、继承
  • 1.一种类与类之间的关系
  • 2.继承的关系
  • 3.特点
  • 二、继承的实现
  • 1.extends
  • 2.Java单继承
  • 3.注意
  • 三、方法的重写
  • 1.重写和重载
  • 2.重写的条件
  • 3.注意
  • 四、访问修饰符
  • 1.四种访问修饰符
  • 五、super关键字的使用
  • 2.顺序
  • 3.注意
  • 4.this和super


一、继承

1.一种类与类之间的关系

使用已存在的类的定义作为基础建立新类。
子类(派生类) —> 父类(基类)
新类的定义可以增加新的数据或新的功能,也可以用父类的功能,但不能选择性地继承父类。

2.继承的关系

满足“A is B”的关系就可以形成继承关系。

3.特点

(1)有利于代码复用。
(2)缩短开发周期。

二、继承的实现

1.extends

class 子类名称 extends 父类名称{
//子类特有的属性和方法
}

2.Java单继承

只能继承一个父类。

3.注意

子类可以访问父类非私有成员
父类不可以访问子类特有成员

三、方法的重写

1.重写和重载

重载:同一个类,方法名相同,参数列表不同(顺序、个数、类型),返回值、访问修饰符无关,与参数名无关。
重写:返回类型、方法名、参数列表(顺序、个数、类型)都要与父类继承的方法相同。

2.重写的条件

(1)有继承关系的子类中
(2)方法名相同,参数列表相同
(3)访问修饰符:
方法的访问修饰符是可以允许有变化的,访问范围需要大于等于父类的访问范围
(4)与方法的参数名无关

3.注意

只能重写方法
但是在子类中,可以定义与父类重名的属性。

四、访问修饰符

1.四种访问修饰符

公有的:public:允许在任意位置访问
私有的:private:只允许在本类中进行访问
受保护的:protected:除跨包且非子类不允许,其余都允许
默认:允许同包,不允许跨包。

访问修饰符   类   包  子类  其他
public      ∨    ∨   ∨    ∨          
protect     ∨    ∨   ∨    ×   
default     ∨    ∨   ×     ×   
private     ∨    ×    ×     ×

五、super关键字的使用

public class Dog{
	public void sleep(){
		eat();//Dog中的eat
	}
}

调用父类中的eat:
super.eat();
super作用:父类对象的引用。
父类的构造方法不允许被继承,重写,但是会影响子类对象的实例化。

2.顺序

父类静态成员->子类静态成员->父类对象构造->子类对象构造

3.注意

子类构造默认调用父类无参构造方法
可以通过super(name,month)调用父类允许被访问的其他构造方法。
super()必须放在子类构造方法有效代码的第一行。
子类的构造过程中必须调用其父类的构造方法,如果子类的构造方法中没有显式标注,则系统会默认调用父类无参构造方法。
如果子类构造方法中既没有显式标注,且父类中没有无参的构造方法,则编译报错。

4.this和super

this和super不能共存。
都不能在静态方法中使用。