子类与父类的继承关系
继承概述
多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承那个类即可。
继承格式
通过extends关键字可以实现类与类的继承
class 子类名 extends 父类名 {}
单独的这个类称为父类,基类或者超类;这多个类可以称为子类或者派生类。
特点:
a:提高了代码的复用性
b:提高了代码的维护性
c:让类与类之间产生了关系,是多态的前提
注意事项:
a:子类只能继承父类所有非私有的成员(成员方法和成员变量)
b:子类不能继承父类的构造方法,但是可以通过super关键字去访问父类构造方法。
c:不要为了部分功能而去继承
例题:定义一个动物类(成员变量 名字,年龄 get set方法实现赋值)子类 猫和狗去继承父类并且对父类的功能进行重写
package westor.work1;
/*很多种动物:
比如说,狗,猫。
狗有姓名和年龄,猫也有姓名和年龄。
狗有吃饭的方法,猫也有吃饭的方法。只不过,狗吃骨头,猫吃鱼。
*/
class Anaimal{
//设置变量
static String name;
static int age;
public static String getName() {
return name;
}
//定义方法对名字年龄进行赋值
public static void setName(String name) {
Anaimal.name = name;
}
public static int getAge() {
return age;
}
public static void setAge(int age) {
Anaimal.age = age;
}
//实现一个功能
public void eat(){
System.out.println("吃饭");
}
}
//定义一个类狗继承动物
class dog extends Anaimal {
//添加特有的功能
public void lookDoor() {
System.out.println("看门");
}
//重写父类的eat 功能
@Override
public void eat() {
System.out.println("狗吃骨头");
}
}
//定义一个猫类继承动物
class cat extends Anaimal{
//特有的功能
public void zls(){
System.out.println("捉老鼠");
}
//重写父类所实现的功能
@Override
public void eat() {
System.out.println("吃鱼");
}
}
//进行测试
public class Text{
public static void main(String[] args) {
cat cat = new cat();
dog dog = new dog();
dog.setName("旺财");
dog.setAge(3);
System.out.println(dog.getName());
System.out.println(dog.getAge());
dog.eat();
dog.lookDoor();
cat.setName("喵喵");
cat.setAge(3);
System.out.println(cat.getName());
System.out.println(cat.getAge());
cat.eat();
cat.zls();
}
}