继承是增加方法和字段来扩展现有类的一种机制,每个类都直接或间接的扩展了Object类.
类继承与接口不同,子类继承了超类的行为和状态.
继承的优点之一就是代码的复用.
关键字:extends
继承几个特点:
1.子类继承父类,则继承了父类的所有方法和属性
2.子类不能访问父类的私有字段,可以通过父类的公用方法去访问
3.子类中调用父类的构造方法,必须在子类的构造方法且第一行关键字super()调用
4.子类定义的方法,同父类中方法一致(方法名,参数类型和个数,返回值),则覆盖父类方法,如果在子类中要调用父类的方法,super.方法名()显式调用,否则默认是子类方法this.方法名()
5.子类中字段名称同父类字段一致,虽合法但应避免这种用法,以免混淆
6.子类同父类之间相互转换,实际是子类引用同父类引用转换.
实例说明:
[code]
public class A
{
public A()
{
System.out.println("a 构造");
}
private String name;
public void setName(String name)
{
this.name = name;
}
public String getName()
{
return this.name;
}
public void test()
{
System.out.println("a");
}
}
public class B extends A
{
public B()
{
super();//调用父类的构造,必须放在第一行
System.out.println("b 构造");
}
public void test()
{
super.test();//显式调用父类的方法,可以不是第一行
System.out.println("b");
}
public static void main(String[] args)
{
B b = new B();
A a =b;
a.setName("张三");
if(a instanceof B)//判断a引用所指向的对象是否是B对象实例
{
System.out.println("true");
}else{
System.out.println("false");
}
}
[/code]
类继承与接口不同,子类继承了超类的行为和状态.
继承的优点之一就是代码的复用.
关键字:extends
继承几个特点:
1.子类继承父类,则继承了父类的所有方法和属性
2.子类不能访问父类的私有字段,可以通过父类的公用方法去访问
3.子类中调用父类的构造方法,必须在子类的构造方法且第一行关键字super()调用
4.子类定义的方法,同父类中方法一致(方法名,参数类型和个数,返回值),则覆盖父类方法,如果在子类中要调用父类的方法,super.方法名()显式调用,否则默认是子类方法this.方法名()
5.子类中字段名称同父类字段一致,虽合法但应避免这种用法,以免混淆
6.子类同父类之间相互转换,实际是子类引用同父类引用转换.
实例说明:
[code]
public class A
{
public A()
{
System.out.println("a 构造");
}
private String name;
public void setName(String name)
{
this.name = name;
}
public String getName()
{
return this.name;
}
public void test()
{
System.out.println("a");
}
}
public class B extends A
{
public B()
{
super();//调用父类的构造,必须放在第一行
System.out.println("b 构造");
}
public void test()
{
super.test();//显式调用父类的方法,可以不是第一行
System.out.println("b");
}
public static void main(String[] args)
{
B b = new B();
A a =b;
a.setName("张三");
if(a instanceof B)//判断a引用所指向的对象是否是B对象实例
{
System.out.println("true");
}else{
System.out.println("false");
}
}
[/code]