一个简单的例子,一看就明白
package com.pocketdigi;
public class Extends {
public static void main(String[] args) {
// TODO Auto-generated method stub
Zhang zhang=new Zhang();
zhang.setName("shang");
zhang.setSex("male");
zhang.setAge(20);
System.out.println(zhang.name);
}
}
class People{
String name;
String sex;
int age;
void setName(String n){
name=n;
System.out.println("父类设置名字为"+n);
}
void setSex(String s){
sex=s;
}
void setAge(int a){
age=a;
}
}
class Zhang extends People{//类Zhang继承People,是People的子类
//覆盖父类的setName方法
void setName(String n){
super.setName(n);
//super代表父类,重载父类setName方法
name="zhang"+n;
System.out.println("子类设置名字为"+name);
}
}
1、子类的对象也是父类的实例,但父类的对象不是子类的实例 2、final类不能被继承,final方法不能被覆盖 3、引用不同包的类,需先import,非public的类不能引用 4、private方法只能被同类访问、default只能在同包、同类中访问,不同包只有public可被访问,如果是子类继承父类,还可访问父类的protected方法 5、private、static方法不能被覆盖,即使编译器不报错,也是产生一个新的方法,并非覆盖 6、如果方法为abstract(抽象),所在类必须声明为abstract,抽象方法没有方法体。抽象类不能实例化为对象,必须先派生子类,至少实现其中的一个方法,再实例化。如果父类为抽象类,子类要么是抽象类,要么就实现父类的抽象方法。