面向对象三大特性之继承
extends
什么是继承呢?我来讲讲自己的拙见。
例如:你老爸是某个著名的商人,家大业大。因为自己上年纪了,想让你继承家产,你一旦继承家产,那么这个家里的什么都是你的,
无论是金钱,还是烦恼,困难都是你的。
虽然不恰当,但这就是继承。
java中的继承也是如此。当一个子类继承了父类,那么父类的方法,成员变量,都会被子类继承。
上代码:
//父类
public class Animal{
private String name;
private int age;
public void run(){
System.out.println("会跑路...");
}
public void setName(String name){
this.name = name;
}
public String getName(){
return name;
}
public void setAge(int age){
this.age= age;
}
public int getAge(){
return age;
}
}
//之类
public class Dog extends Animal{
//private String name; //此时你写了继承Animal类,所以就继承了他的成员变量和方法,所以这就不需要重复的写(name、age)变量
//private int age;
private String color; //Dog私有的变量
public void show(String color){ //私有方法
System.out.println("毛发是:"+color);
}
public void setColor(String color){
this.color= color;
}
public String getColor(){
return color;
}
}
//测试
public class Test{
public static void main(String[] ages){
Dog dog = new Dog(); //实例化一个dog对象
dog.setName("大黄"); //因为dog继承了Animal,所以也有了name,age属性
dog.setAge(3);
dog.setColor("黄色");
dog.show(dog.getColor());
}
}
简单来说,上面就是继承。在dog的类中并没有写父类的成员变量,但是因为继承了父类,所以之类也就得到了父类的所有成员变量和方法。当然,方法在不满足你的要求的时候可以override。改变方法体就可以。