java中通过继承,子类自动拥有了基类的所有成员变量和方法。
一、使用
(1)java中使用extends关键字实现类的继承,其语法规则为:
class [extends ]{ }
(2)在子类中,可以根据需要对从基类中继承来的方法进行重写。
class Person{
private String name ;
protected int age = 18 ;
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;
}
protected void info(){
System.out.println("name:"+ getName() +"\nage:" + getAge());
}
}
class child extends Person{
public String classmate;
public void setClassmate(String classmate) {
this.classmate = classmate;
}
public String getClassmate() {
return classmate;
}
protected void info(){
System.out.println("name:"+ getName() +"\nage:" + getAge() +"\nclassmate:"+ getClassmate());
}
}
public class overWrite {
public static void main(String args[])
{
child c = new child();
c.setName("小宇");
c.setAge(1);
c.setClassmate("暂时还没有上学");
c.info();
Person p = new Person();
p.setName("叶子");
p.info();
}
}
上面child类继承了Person类,同时重写了person中的info方法。
注意事项:
1.重写方法必须和被重写方法具有相同方法名称、参数列表和返回类型,为避免出错最好是copy代码,再进行重写(否则出现问题,排查起来比较麻烦)。
2.*重写(overwrite)是重新写一遍,重载(overload)是是同一个类下有多个相同名字得方法,两者是不一样的。
3.重写不能使用比被重写方法更严格的访问权限。
如Person中info是protected权限,child重写info如未private则将提示错误。
二、说明
Java只支持单继承,不允许多继承
一个子类只能有一个基类,一个基类可以派生出多个子类。