继承这一属性在于Java语言的学习和使用中属于比较重要的环节,继承的出现可以使得程序员写出来的代码更加简洁,便于他人理解和维护。在我们逐渐深入的学习过程之中,我们今后遇到的类、对象等等也会越来越多,但是一般而言,即使是不同的类也会有一些共同的特征行为,而我们选择将这些特征行为统一放到同一个类之中,且被其他的类所共享,对于这种就是所说的继承。就像我们生活中将不同类的东西进行归类,这样就会方便我们在今后的生活之中更加容易地找到我们所需要的物品,我们就可以根据物品的属性去寻找相应的位置。
例如,我们可以用动物做一个简单的例子,我们先做一个动物的通用类:
public class Animal {
public String name="豆豆";
public int age=1;
public int weight=2;
public void eat(){
System.out.println(name+"吃饭");
}
public void sleep(){
System.out.println(name+"睡觉");
}
}
在这之中就表现出来了一些简单的动物属性:名字,年龄和体重,对于这里我们把这个通用类称之为父类,然后我们需要的就是一个子类去继承上面的这些属性:
public class Dog extends Animal{
public String getName(){
return name;
}
public int getAge(){
return age;
}
public int getWeight(){
return weight;
}
}
在这里我们可以看出是利用了“extends Animal”这个词组对于我们上面所列举出来的一个Animal的一个通用类的调用,让我们现在设置的Dog可以获取Animal这个类中的属性并继承,最后进行一个简单的输出测试:
public class Test {
public static void main(String[] args) {
Dog dog = new Dog();
System.out.println(dog.name);
System.out.println(dog.age);
System.out.println(dog.weight);
dog.eat();
dog.sleep();
}
}
这里就可以看出来我们后面所设置的Dog这个类将我们在Animal这个父类中的设置的三个属性进行了继承,如果我们需要其他的动物来继承,比如可以在设置一个Cat或其他,就可以直接调用Animal这个父类的属性,这样的结构下我们可以渐少很多的代码,只需要在使用的时候直接从父类继承相关属性就可以达到我们需要的结果。
而在继承之中,最重要的一点也就是一个子类只能够继承于一个父类,就是需要我们用extends来进行标注的被继承的父类,在Java的语言中,是不能够进行多继承的,只能够是单一继承,如果我们没有用extends进行父类的声明,那麽就会默认继承自java.lang.Object;Objecrt是所有类的祖先类,但它并不具有任何属性。
当我们在定义父类属性的时候,我们可以选择设置子类的使用权限:
public 子类拥有使用权限;private:子类没有使用权限;protected:当子类与父类处于同一个包下则子类就拥有了权限;
在继承之中还有一个特殊的Super关键字的使用。因为父类的构造方法并不后被子类所继承,如果我们需要父类的构造方法,这时我们需要在子类之中使用Super()从中调用。
例如我们可以先构造一个简单的父类:
public class base {
int a=0;
int b=100;
public void method(){
System.out.println("父类中的method");
}
}
public class Derived extends base{
public int a =100;
public void method(){
System.out.println("我是子类的method");
}
public void m2(){
System.out.println(super.a);
super.method();
}
public static void main(String[] args) {
Derived derived = new Derived();
derived.m2();
}
}
这里面我们在父类中定义了a的值为0,而后我们所写的子类可以给a再一次赋值为100,不过我们在子类中选择了super这个关键字去调用了父类中的a,结果为:可以看出我们通过super这个方法调用的是父类中的a的值而不是我们在子类中所赋给a的一个新的值,这就是super关键字的一种简单应用。
继承简单小结:
1. 子类和父类之间,概念上的关系是 is-a 的关系 2.java 通过 extends 来明确继承关系 1)一个子类只能继承一个父类 2) 如果没有明确的extends, 默认继承自 java.lang.Object 3.逻辑上,子类对象中,包含一个 “父类对象”,无论有没有权限访问 4. 子类对象的实例化之前,必须在子类的构造方法中,调用父类的构造方法 1)通过super()调用 2)当父类有无参构造方法时,super(可以省略 5. 通过 super 可以明确访问父类中的属性和方法(有访问权限的前提下) 1)当没有 名称歧义时,直接通过 this 也可以 6,子类可以定义新的方法,与父类中的方法实现重载关系 7.子类可以定义和父类中方法签名完全-



