面向对象——继承
定义
在Java中,类的继承是指在一个现有的类的基础上去构建按一个新的类,构建出来的新类被称作子类,先有类被称作为父类,子类会自动拥有父类所有可继承的属性和方法。
格式
class 子类 extends 父类 {
}
举例
class Employee {
//定义name属性
String name;
//定义员工的工作方法
public void work(){
System.out.println("全力以赴去工作!");
}
}
class Develoer extends Employee{
/**
定义一个打印name 的方法
*/
public void prinName(){
System.out.println("name:"+name);
}
/**
* 定义一个测试类
*/
public static class Example01{
public static void main(String[] arge){
Develoer d = new Develoer();
d.name = "小米"; //为该员工的那么属性进行赋值
d.prinName(); //调用该员工的printName()方法
d.work(); //调用Developer类继承work方法
}
}
}
/*
输出结果:
name:小米
全力以赴去工作!
*/
继承的优缺点及注意事项
好处
1、继承的出现提高了代码的复用性,提高软件开发效率
2、继承的出现让类与类之间产生了关系,提供了多态的前提。
3、让类与类之间参生关系。
弊端
类与类之间耦合度太高
注意以下问题
类只支持单继承,不允许多继承
class A{}
class B{}
class C extends A,B{} // C类不可以同时继承A类和B类
多个类可以继承一个父类
class A{}
class B extends A{}
class C extends A{} // 类B和类C都可以继承类A
一个类的父类可以再去继承另外的父类
class A{}
class B extends A{} // 类B继承类A,类B是类A的子类
class C extends B{} // 类C继承类B,类C是类B的子类,同时也是类A的子类
一个类是某个类父类的同时,也可以是另一个类的子类
继承-子父类中成员变量的特点
package Demo;
class Fu {
/**
* Fu中的成员变量。
*/
int num = 5;
}
class Zi extends Fu {
/**
* Zi中的成员变量
*/
int num2 = 6;
/**
* Zi中的成员方法
*/
public void show() {
//访问父类中的num
System.out.println("Fu num=" + num);
//访问子类中的num2
System.out.println("Zi num2=" + num2);
}
}
class Demo {
public static void main(String[] args) {
//创建子类对象
Zi z = new Zi();
z.show(); //调用子类中的show方法
}
}
输出结果:
Fu num=5
Zi num2=6
代码说明
Fu类中的成员变量时非私有的,子类可以之间访问,反之则不然。
当子父类中出现了同盟成员变量时,在子类中若要访问父类中的成员变量,必须使用关键字,super来完成。super用来表示当前对象中包含的父类对象空间的引用。