继承定义
利用继承,人们可以基于已存在的类构造一个新类。继承已存在的类就是复用(继承)这些类的方法和域。
在此基础上,还可以添加一些新的方法和域,以满足新的需求
继承用法
关键字extends表示继承
class Manager extends Employee
{
//添加方法和域
}
关键字 extends 表明正在构造的新类派生于一个已存在的类。
已存在的类称为超类( superclass)、 基类( base class) 或父类(parent class);
新类称为子类(subclass)、 派生类( derived class) 或孩子类(child class)
子类对象在进行实例化前首先调用父类构造方法,再调用子类构造方法实例化子类对象。
继承注意事项
1.Java只允许单继承不允许多继承(一个子类继承一个父类)
即迭代继承,不可一个子类继承两个父类
此为正确用法
class A{
}
class B extends A{
}
class C extends B{
}
2.子类继承了父类属性,构造函数,成员函数。
显示继承:所有非私有操作属于显示继承(可以直接调用)
隐式继承:所有私有操作属于隐式继承(不可以直接调用,需要通过其它形式调用(get或者set))
```java
class father {
int a=2;
father(){System.out.println("父类构造函数");}
public void method(){
System.out.println("父类方法");
}
}
class Son extends father {
int a = 1;
String name;
Son(){this.name="gaokaoli";System.out.println(name);} //定义构造函数
Son(String n){name=n; System.out.println(name);}
public void method_Son(){
System.out.println(super.a); //父类中的a
System.out.println(this.a); //子类中的a
}
public void method(){
super.method(); //访问父类中的method
System.out.println("子类方法");
}
}
class Test{
public static void main(String [] args){
Son son =new Son();
Son son1=new Son("lxs");
son.method_Son();
son.method();
}
}
与c++继承比较
Java 与 C++ 定义继承类的方式十分相似。Java 用关键字 extends 代替了 C++中的冒号(:)。在 Java 中,所有的继承都是公有继承,而没有 C++ 中的私有继承和保护继承