Extends

来源:互联网 发布:mac air搜狗输入法 编辑:程序博客网 时间:2024/05/23 18:33
//继承
/*1.一个新类从已有的类那里获得其已有的属性和方法,这中现象叫类的继承
  2.这个新类被称为子类,也叫派生类,已有的那个类叫做父类,也叫做基类
  3.继承的好处,
  --代码得到极大的重用
  --形成一种类的层次体系结构,为多态创造条件
*/
class Human
{
public String name = "张三";
public int age = 22;
}
class Student extends Human
{

public double score = 66.6;
}
class Graduate extends Student
{

public String daoshi = "哈哈";
}
public class TestExtends2
{
public static void main(String[] args)
{
Graduate gd = new Graduate();
System.out.printf("%s %f\n",gd.name,gd.score);
}

}

-----------------------------------------------------------------

/*本程序证明了:
  1.子类内部可以访问类非私有的成员,私有成员无法被子类方法访问
  2.通过子类对象名只能访问从父类继承过来的非私有成员
  总结:
  私有不能被继承
  私有物理上 已经被继承过来,只不过逻辑上程序员不能去访问它
  因此继承必须慎重,否则会浪费内存
    */
class A
{
public int i;
protected int j;
private int k;
public void g()
{

}
private void s()
{

}
protected void b()
{

}
}
class B extends A
{
private void m()
{
i = 20;
j = 30;
//k = 40;//私有属性不能被继承
g();
//s();//私有的方法不能被继承
b();
}
public void f()
{
i = 20;
j = 30;
//k = 40;//私有属性不能被继承
g();
//s();//私有的方法不能被继承
b();
}
}
class M
{
public static void main(String[] args)
{
B bb = new B();
bb.i = 20;
bb.j =  33;
bb.b();
bb.g();
//bb.s();//error
//bb.k = 22;//erroe
}
}

--------------------------------------------------------------------

/*子类访问父类的三种方式
 1.在子类内部访问父类成员
 2.通过子类对象名访问父类成员
 3.通过子类的类名访问父类成员
 经验证,子类通过上述三种方式的任何一种 都无法访问父类的私有成员,因此我们可以得出结果:私有成员无法被子类继承
*/
class A
{
  public static int i;
  protected int j;
  private int k;
}
class B extends A
{
private void g()
{
i = 22;
//k = 20;
}
}
class M
{
public static void main(String[] args)
{
A.i = 99;
B bb = new B();
B.i = 99;
bb.i = 99;
}
}