Java 类和对象实验

类的封装体现在私有上 private

方法重载:

方法重载的条件如下:

  1. 方法名称相同:被重载的方法必须有相同的名称。

  2. 参数列表不同

    • 参数数量不同。
    • 参数类型不同。
    • 参数的顺序不同。
  3. 返回类型可以相同也可以不同:方法的返回类型可以相同也可以不同。但仅仅基于返回类型的不同是无法进行方法重载的。即使两个方法的返回类型不同,只要参数列表相同,它们仍然被认为是冲突的。

必须改参数!!

类的继承

继承是子类利用父类中定义的方法和变量,当一个类拥有另一个类的所有数据和操作时,就称这两个类之间存在着继承关系。

Java中不支持类之间的多重继承。

我们通过在类的声明中加入extends子句来创建一个类的子类: class SubClass extends SuperClass {……} 如果缺省extends子句,则该类为java.lang.Object的子类。子类可以继承父类中访问权限设定为public、protected、default的成员变量和方法,但是不能继承访问权限为private的成员变量和方法

1. 方法重写也叫做方法覆盖,指在子类中重新定义父类中已有的方法。

2. 方法重写的条件: 如果能满足以下条件,那么我们就说子类中的方法重写了超类中的方法。  方法名、参数列表和返回值完全相同;  访问控制范围(public, protected, private, default)不能被缩小;  抛出的异常不能被扩大。

 this和super的使用

this()方法与this关键字不同,this()方法代表的是一个构造方法对其他构造方法的调用。这里要特别注意的是,this() 必须放在构造方法的第一行,也就是说,它前面不能再有其他语句。

super有两种通用形式。第一种是调用父类的构造方法。当一个子类调用super()时,它调用它的直接父类的构造方法。这样,super()总是引用调用类直接的超类,这甚至在多层次结构中也是成立的。还有,super()必须是子类构造方法中的第一个执行语句。 第二种是用来访问被子类的成员隐藏的父类成员。super指这个对象的父类。super可以用来引用父类中的(被覆盖的)方法、(被隐藏的)变量及构造方法。

eg.

this:

package sample;
public class Employee {  
    private String name;  
    private int salary;
    
    public Employee(String n, int s) {
        name = n;  
        salary = s;
    }
    
    public Employee(String n) {
        this(n, 0);
    }  
    
    public Employee() { 
       //int a = 0; //错误!this() 必须放在构造方法的第一行   
        this( " Unknown " );  
    }
}

super :

public class Apple extends Fruit
{
    public Apple(double price)
    {
        super(price);
        super.var = value;
        super.method(paraList);
    }
}

继承中的构造方法调用

先运行父类 super构造再 子类构造。

而且如果super()没有被用到,那么每个父类的默认的或无参数的构造方法仍将执行。下面的例子阐述了何时执行构造方法。

在对对象进行垃圾收集前,Java运行时系统会自动调用对象的finalize() 方法来释放系统资源。该方法必须按如下方式声明:

protected void finalize() throws throwable

{     ……  //释放本类中使用的资源     super.finalize(); }

多态

多态是指一个方法只能有一个名称,但可以有许多形态,也就是程序中可以定义多个同名的方法,用“一个接口,多个方法”来描述,可以通过方法的参数和类型引用实现。  

多态性使指相同的操作或函数、过程可作用于多种类型的对象上并获得不同的结果。不同的对象,收到同一消息可以产生不同的结果,这种现象称为多态性。

  • 32
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值