继承的概念
Java中允许在一个现有类的基础上构建一个新的类,构建出来的新类称为子类或者派生类,现有的类称为父类。构建出来的子类自动拥有父类的所有可继承的属性和方法。继承使用的关键字为extend
//定义一个Animal类,作为父类
public class Animal {
String type;
String name;
public void run(){
System.out.println("动物跑......");
}
}
//定义Cat类继承Animal类
public class Cat extends Animal {
public void print(){
System.out.println("品种:" + type + ",名称:" + name);
}
}
public class Example09 {
public static void main(String[] args) {
Cat cat = new Cat();//创建一个Cat类的实例
cat.type = "金毛";//为品种属性赋值
cat.name = "嘟嘟";//为名称赋值
cat.print();//调用自身的方法
cat.run();//调用继承父类的方法
}
}
Cat类中并没有run()方法,但是可以调用方法,这就是从父类继承过来的。在类的继承中有以下注意几点:
- Java类只支持单继承,不允许多继承,也就是说一个类只能继承一个直接父类
错误实例:class A{}; class B{}; class C extend A,B{}
- 多个类可以继承同一个类
class A{}; //类B,C同时继承A类 class B extend A{}; class C extend A{};
- 可以多继承,一个父类又可以继承其他父类,子类和父类是相对概念
class A{}; class B extend A{}; class C extend B{};
重写父类的方法
子类会自动继承父类的所有属性和方法,有时候在子类中需要对父类的方法中修改也就是对父类方法的重写。在子类中重写的方法需要和父类被重写的方法名相同,参数类型以及方法返回值都相同
//定义一个Animal类,作为父类
public class Animal {
String type;
String name;
public void run(){
System.out.println("动物跑......");
}
}
//定义Cat类继承Animal类
public class Cat extends Animal {
public void print(){
System.out.println("品种:" + type + ",名称:" + name);
}
//重写父类的run方法
@Override
public void run(){
System.out.println("金毛在奔跑");
}
}
public class Example01 {
public static void main(String[] args) {
Cat cat = new Cat();
cat.type = "金毛";
cat.name = "嘟嘟";
cat.print();
cat.run();
}
}