类与对象及继承多态

来源:互联网 发布:3dmax测试软件 编辑:程序博客网 时间:2024/06/02 01:47
1.类与对象
类:虚体,以人的意识存在的,无实物,如人类




对象:实体,真实的物体,如桌子,人




面向对象——关注对象(只关注事情的执行者是谁)——结果不确定
面向过程——关注过程(关注事情的流程是怎么样做的)——结果能确定


面向对象三大特性:继承性、多态性、封装性






2.
1.构造器(构造方法)


作用:构造对象,创建对象的时候自动调用(即创建多个对象,将多次调用)


普通方法格式:    public 返回类型 方法名(参数列表){}


构造方法基本格式:public 类名(参数列表){}
类名:需和所创的类名一致






在内存块中,一个栈对应一个堆,如果进行地址进行转换(引用传递),那么堆可对应多个栈。进行转换的地址将成为废除的空间。


引用传递:对象的地址进行交换
废除的空间,有java虚拟机垃圾回收机制进行回收


2.方法重载
定义:同一个类当中,多个方法的方法名相同,参数列表不同(参数个数、参数顺序、参数类型)的方法,互为重载方法


如参数个数不同,方法名相同(只要在调用时能区别所需函数就可)
如:
public  void  teach(){
System.out.println("上课");


        public  void  teach(int a){
System.out.println("上课");


其他:

public  void  teach(string a){
System.out.println("上课");


public  void  teach(String a,int b){
System.out.println("上课");


public  void  teach(int b,String a){
System.out.println("上课");






构造函数重载:创建一个对象,只能调用一个构造函数
作用:初始化对象的属性


3.继承 (extends)(子类和父类关系)


定义 :子类继承父类通过extends关键字实现
如下列程序:
public class A extends d{
}
D为A的父类,A继承D




子类可以继承到父类的所有的非私有属性和方法:


 即可继承程序中父类public指代的部分,而无法继承父类私有(private)的部分。
如:
public class D{
public String a;  //可继承
private int b;     //不可继承
public void t(){
  System.out.println("测试");
 
作用:动态的进行拓展类的功能




4.方法重写
定义:子类重写父类的方法,方法名、参数、返回类型必须相同
如:在D中:
public void t(){
 System.out.println("测试");
}


当不想在D中实现,想在A中重写
则在子类定义相同的方法:
public class A extends d{
public void t(){      //参数,返回类型都不可改,否则将是重载
 System.out.println("测试");
 }
}
此时,A中只有一个方法,从D继承的方法被重写的方法覆盖了






子类重写父类方法:用于覆盖父类继承过来的函数




5.自动转型
子类类型的对象自动转型为父类类型的引用,最终是父类类型的
如:
D obj=new A();//此转型两者必须要有继承关系,如老师一定是人
而:
A obj=new D();这是错误的,正如同是人,但你并不是老师




转型后的对象:调用方法,如果子类重写了父类的方法,则调用的是重写后的,如果没有重写,则依然调用的是父类自己的








6.多态
多个同一个类型的引用,调用同一个方法,执行的流程不一样
如:
D obj =new A();
D obj1 =new D();


obj.t();
obj1.t();


不同方法,结果相同



























0 0
原创粉丝点击