杂乱笔记2



方法覆盖可以被很好的利用,用于修改基类成员的方法。
方法覆盖保持了基类对象的接口,而采用了衍生层的实现。


方法重载 : 同名方法参数不一样
在该构造方法中:


由于在创建衍生对象的时候,基类对象先被创建和初始化,所以,基类的构造方法应该先被调用。我


们可以使用super(argument list)的语句,来调用基类的构造方法。
基类对象创建之后,开始构建衍生层 (初始化衍生层成员)。这和一般的构建方法相同,参考构造方法


与方法重载


extends


method overriding


protected


super.member, super()


声明为public的类数据成员,可以利用class.field的方式或者object.field(如果存在该类的对象)的


方式从外部直接访问。


如果一个方法声明为static,那么它只能调用static的数据和方法,而不能调用非static的数据和方


法。
final关键字的基本含义是: 这个数据/方法/类不能被改变了。


final基本类型的数据: 定值 (constant value),只能赋值一次,不能再被修改。
final方法: 该方法不能被覆盖。private的方法默认为final的方法。
final类: 该类不能被继承。
static field, static method


class.static_method()


final


interface为类提供了接口规范。


接口继承(inheritance)与类继承很类似,就是以被继承的interface为基础,增添新增的接口方法原型。
interface Cup {
void addWater(int w);
void drinkWater(int w);
}


interface MetriCup extends Cup
{
int WaterContent();
}


在Java类的继承中,一个衍生类只能有一个基类。也就是说,一个类不能同时继承多于一个的类。在Java中,interface可以同时继承多于一个interface,这叫做多重继承(multiple inheritance)。
interface Player
{
    void play();
}
我们新增一个MusicCup的接口。它既有Cup接口,又有Player接口,并增加一个display()方法原型。


interface MusicCup extends Cup, Player 
{
    void display();
}
当一个类中出现abstract方法时,这个类的声明必须加上abstract关键字,否则Java将报错。一个abstract类不能用于创建对象。
我们可以像继承类那样继承一个抽象类。我们必须用完整的方法定义,来覆盖抽象类中的抽象方法,否则,衍生类依然是一个抽象类。


抽象类的定义中可以有数据成员。数据成员的继承与正常类的继承相同。
interface继承,多重继承


abstract method, abstract类


Human aPerson = new Human(160);
创建了一个Human类的对象aPerson。 


上面是一个非常简单的表述,但我们有许多细节需要深入:


首先看等号的右侧。new是在内存中为对象开辟空间。具体来说,new是在内存的堆(heap)上为对象开辟空间。这一空间中,保存有对象的数据和方法。
再看等号的左侧。aPerson指代一个Human对象,被称为对象引用(reference)。实际上,aPerson并不是对象本身,而是类似于一个指向对象的指针。aPerson存在于内存的栈(stack)中。
当我们用等号赋值时,是将右侧new在堆中创建对象的地址赋予给对象引用。
这里的内存,指的是JVM (Java Virtual Machine)虚拟出来的Java进程内存空间。
在 Java中,所有的(普通)对象都储存在堆上。因此,new关键字的完整含义是,在堆上创建对象。


引用比喻成放风筝,引用和对象的关系就像风筝和人。我们看天空时(程序里写的),看到的是风筝(引用),但风筝下面对应的,是人(对象)。分离引用和对象。


将一个引用赋值给另一个引用,并不能复制对象本身。


垃圾回收的基本原则是,当存在引用指向某个对象时,那么该对象不会被回收; 当没有任何引用指向某个对象时,该对象被清空。它所占据的空间被回收。


参数传递:实际上,我们传递的参数,一个是基本类型的变量,另一个为对象的引用。


基本类型变量的值传递,意味着变量本身被复制,并传递给Java方法。Java方法对变量的修改不会影响到原变量。


引用的值传递,意味着对象的地址被复制,并传递给Java方法。Java方法根据该引用的访问将会影响对象。
 new


引用,对象


被垃圾回收的条件


参数: 值传递


对杯子编程和对喝水编程。
基本类型转换


polymorphism


downcast


Object
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值