extends继承

extends   继承
如何使用?
class A{
    int x;
 
    public void setX(int x){this.x = x;}
    public int getX(){return x;}
    public String toString(){return "A类的实例,x属性的值是:"+x;}
 
    public A(){x=10;}
    public A(int x){this.x = x;}
}
//B类继承A类,A类是B类的父类(superClass,BaseClass)
//B类是A类的子类(派生类,subClass, childClass)
class B extends A{
    int y;
    public void setX(int x){this.x = x;}
    public int getX(){return x;}
}

 

作用:
    子类继承父类所有属性和方法,构造器不能继承.
    new子类对象时,总是先new父类对象。
 
好处:
    1.代码复用
    2.子类可以扩展新的属性和方法
 
 
    构造器不能继承但new子类对象时,总是先new父类对象。
    默认调用父类的无参构造器,
    如果要显式调用父类指定构造器,使用super([参数])调用.
    super()必须注意:在构造器中只能是第一行代码,并且只能用一次。
 
 
class A{
    public A(int x, int y, String str){...}
}
class B{
    public B(){
        super(10,20,"abc");
    }
    public B(int x, int y){
        super(x,y,"abc");
    }
    public B(int x,int y, String s){
        super(x,y,s);
    }
}
 
 
 
public class Pointer2D{
    int x,y;
    public Pointer2D(){}
    public Pointer2D(int x, int y){
        this.x=x;
        this.y = y;
    }
    main{
        Pointer2D p1 = new Pointer2D();
        Pointer2D p2 = new Pointer2D(10,20);
 
    }
 
}
public class Pointer3D extends Pointer2D{
    int z;
}

 

 
 
 
static 与对象无关
类的组成成员
class 类{
    对象属性成员
    类属性   
 
    代码块   
    静态代码块   
 
    构造器
 
    非静态方法
    静态方法
 
    内部类
}
======================================================
extends   继承
如何使用?
class A{
    int x;
 
    public void setX(int x){this.x = x;}
    public int getX(){return x;}
    public String toString(){return "A类的实例,x属性的值是:"+x;}
 
    public A(){x=10;}
    public A(int x){this.x = x;}
}
//B类继承A类,A类是B类的父类(superClass,BaseClass)
//B类是A类的子类(派生类,subClass, childClass)
class B extends A{
    int y;
    public void setX(int x){this.x = x;}
    public int getX(){return x;}
}

 

作用:
    子类继承父类所有属性和方法,构造器不能继承.
    new子类对象时,总是先new父类对象。
 
好处:
    1.代码复用
    2.子类可以扩展新的属性和方法
    构造器不能继承但new子类对象时,总是先new父类对象。
    默认调用父类的无参构造器,
    如果要显式调用父类指定构造器,使用super([参数])调用.
    super()必须注意:在构造器中只能是第一行代码,并且只能用一次。
 
super关键字,除了可以调用在构造器中调用父类构造器之外,还可调用父的属性和方法.
 
this关键字:
    1.this([参数列表])表示当前类的构造器,super([参数列表])表示父类的构造器.
    2.this.属性或this.方法()表示引用当前类的对象的属性或方法;super.属性或super.方法()表示引用父类的对象的属性或方法;
 
class Demo{
    int x;
    public Demo(){
        super();
        this(0);
        //调用下面带参的构造器,作用类似于this.x=0;
    }
    public Demo(int x){
        this.x = x;
    }
}
//重载,重写,抽象类,终态类

 

 
 

 
 
cl      ass A{
        String s="class A"; 
      void show(){
             System.out.println(s);
}
 }
 class B extends A{
     String s="class B";   
      void show() {
             System.out.println(s);
}
}
 public class TypeConvert{
       public static void main(String args[]){
              B b1;
B b2=new B();
              A a1,a2;
              a1=(A)b2;子类强制转换成父类是 方法是父类,属性是子类的
              a2=b2;
              System.out.println(a1.s);class A
        a1.show();class B
              System.out.println(a2.s);class A
        a2.show();class B
              b1=(B)a1;父类强制转换成子类是方法重写了,属性重写
              System.out.println(b1.s);class B
         b1.show();class B
              System.out.println(b2.s);class B
            b2.show();class B
       }
 }

 

class A
class B
class A
class B
class B
class B
class B
class B

 

posted @ 2018-01-04 10:14  zachary7  阅读(220)  评论(0编辑  收藏  举报