1.什么是继承?
继承是面向对象最显著的一个特性。继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力
2.为什么要继承?
在我们编程的时候,往往有很多的代码需要我们重复的去编写,那么有没有什么方法可以让我们省去重复编写相同代码呢?这就要运用到继承,继承已存在的类就是复用这些类的方法,而且可以增加一些新的方法和字段,使新类能够适应新的情况。
3.继承的优点
1、子类拥有父类非 private的属性、方法。
2、子类可以拥有自己的属性和方法,即子类可以对父类进行扩展。
3、子类可以用自己的方式实现父类的方法。
4.继承的缺点
继承只能单继承,一个子类只能有一个父类,但是一个父类可以有很多子类。因为继承了父类的东西,会导致耦合度很高。
5.继承的语法
表示: 关键字 extends
// aaa是子类,继承父类bbb
public class aaa extends bbb(){
}
6.注意!!!
1.一个子类只能有一个父类,只能单继承关系
2.子类将继承父类的成员变量和成员方法
3.构造方法不能被继承。
7.不可以被继承的
1.同包中的private修饰的内容不可以被继承!!!
2.构造方法不可以被继承!!!
3. 不同包中的缺省修饰内容不可被继承!!!
在上面,我们提到了被private修饰的内容不可以被继承,那private是什么呢?private是访问修饰符,用于限制类、方法和变量的访问范围。
8.四种访问修饰符
1、private修饰符
private表示私有的。既然是私有的,那么就只能在自己所属的类中使用了,private也是Java中四种访问修饰符中,访问权限最小的。
2、default修饰符
Java中默认修饰符,只能被本类或者同一个包中的其他类访问到。
3、protected修饰符
protected修饰符表示受保护的。protected修饰符可以被本类、同一个包中的类、不同包中的子类所访问到。
4、public修饰符
public修饰符表示公开的,公共的。既然是公开的、公共的,所有的类都可以访问到的了。
在Java中,一个java文件中,可以定义多个类,但是被public修饰的类只能有一个,并且被public修饰的类的类名称必须和java文件名称相同。
在接口中,默认的访问修饰符是public。
9.关键字super
子类和父类中可能会存在相同名称的成员,使用super可以在子类方法中访问父类的属性、方法、构造方法。
注意点:
1.在构造方法中使用super的时候必须放在第一行
2.调用父类中相应的构造方法,若不显示的写出来,默认调用父类的无参构造方法
super的使用
super可以调用父类的属性、方法、构造方法
super.属性 super.方法名() super()
举个继承并且运用super的例子:
public class Animal{
protected String name;
public void run(){
System.out.println("有动物在跑!");
}
}
class Bird extends Animal{ // Bird子类继承Animal父类
public void print(){
super.run(); //调用父类的方法;
System.out.println(super.name +"我是一只鸟,");
}
//重写父类的方法:
public void run(){
System.out.println("正在天上飞!");
}
}
10.构造方法的执行顺序:
如果我们没有在子类构造方法中显示的调用指定的父类构造方法,则默认调用父类无参构造方法,如果我们明确调用了父类的构造方法,则按照我们写的去执行