3.1、继承
3.1.1、概念
继承是面向对象软件技术当中的一个概念,与多态、封装共为面向对象的三个基本特征。继承可以使得子类具有父类的属性和方法或者重新定义、追加属性和方法等。
3.1.2、继承关键字
继承可以使用 extends 和 implements 这两个关键字来实现继承,而且所有的类都是继承于java.lang.Object
当一个类没有继承的两个关键字,则默认继承object(这个类在 java.lang包中,所以不需要 import)祖先类。
- extends关键字
在 Java 中,类的继承是单一继承,也就是说,一个子类只能拥有一个父类,所以 extends 只能继承一个类。
public class Animal {
private String name;
private int id;
public Animal(String Name, String id) {
this.name= name;
this.id= id;
}
public void eat(){
System.out.println(name+"正在吃");
}
public void sleep(){
System.out.println(name+"正在睡");
}
public void introduce() {
System.out.println("大家好!我是"+ id+ "号"+ name+ ".");
}
}
public class Mouse extends Animal {
public Mouse(String myName, intmyId) {
super(Name, Id);
}
}
- implements关键字
implements 关键字可以变相的使Java具有多重继承(不是多继承)的特性,使用范围为类实现接口的情况,可以同时实现多个接口(接口之间采用逗号分隔)。
public interface A {
public void eat();
public void sleep();
}
public interface B {
public void run();
}
public class C implements A,B {
}
3.1.3、语句格式:
class 子类名 extends 父类名{
}
class 父类 {
} class 子类 extends 父类 {
}
3.1.4、注意
- 子类拥有父类的特征,而父类没有,父类更通用,子类更具体(特征包括属性和方法,自身的特性,拥有父类没有的)
- 使用extends继承父类,语句格式:class 子类名 extends 父类名{}
- 父类中一般只定义一般属性和方法(这个一般可以理解为是子类共有的,这就是父类更通用,而子类拥有其他的,所以子类更具体)
- 子类中通过super关键字来调用父构造方法
- 在子类中可以继承父类的哪些东西,哪些不可以继承——父类中public、protected修饰的属性和方法可以继承,private修饰的属性和方法不能被继承
- 规则:创建子类对象的时