Java中类与对象、子类和继承,以及抽象方法和接口的详解

*类与对象

1)一个java文件里面只能有一个主类,主类即类前面加一个public修饰。
(2)成员变量也称为实例变量(无static修饰)****静态变量也称为类变量(即有static修饰),同理也有实例方法(无static)和类方法(有static)。类方法只能访问类变量。而实例方法既可以访问实例变量也可以访问类变量
(3) 包语句:如果你导入(import)了两个包且他们的类名相同。方法有两种:①两个类创建对象的时候都加上前缀包目录,就不需要写import导入包语句了。②一个类使用import导入包语句,创建对象就可以直接使用类名(不用加目录前缀),如果你要用另一个创建对象则需要写上前缀包目录。
(4)构造方法匹配问题:如果你用类定义一个对象,但该类有多个构造方法,则根据参数个数和参数类型匹配。还有下列情况:①如果你定义了有参构造函数,编译器就不会给你生成无参构造函数,用该类创建对象时是不允许无实参的,如果要创建无参对象,就要自己在该类里创建无参构造函数。② 如果你在类中定义了参数的优先级高构造函数,在创建对象时就不能传优先级低的参数。③ 如果你创建的对象参数类型在类中的构造函数没有,则他会找到参数优先级比他高的构造函数。优先级如下:从左到右增高byte short char int long float double
(5)类中的某一个构造函数调用其他构造函数,可以用 this(参数);函数语句,根据参数调用匹配的构造函数。但是不能用向优先级高的类型转换规则,会作递归调用处理。
类与继承(1)访问权限表(Y表示能访问,N表示不能访问)

内部类本包子类外部包
publicYYYY
projectYYYN
friendlyYYYN
privateYNNN

注意分析表的各个维度,例如:
(1)子类是可以访问不在同一包里的父类的protected变量或方法的。
(2)子类一定继承一个带无参构造函数的父类,没有无参构造函数的父类是不能被继承的,子类创建对象一定是先调用父类的无参构造函数再执行子类的构造函数。
(3) instanceof 用来判断左操作元对象是不是右操作元类创建的。子类创建的对象也是父类创建的。但是父类创建的对象,不是子类的对象。
(4)子类继承父类,则一定要满足下面条件中任意一条:①父类既没有无参构造方法也没有有参构造方法;②父类有无参构造方法,也要写无参构造方法;③父类有有参构造函数而没有无参构造函数,则子类的无参或有参构造函数的第一个语句一定是 super(父类有参构造方法的参数); 这条函数语句.
(6)final类:不能被继承;final方法:不予许子类重写,可以被继承;常量:放在堆里(变量放在栈中),一定要赋初值,不允许被修改。

abstract 类 和abstract方法

(1)用abstract修饰的类称为抽象类例如:
abstract class A{
-------
}
对于abstract方法称为抽象方法例如:
abstract int main(inx,inty){}
(2)对于抽象方法只许声明,不允许实现(即没有方法体),而且不允许使用final和abstract同时修饰一个方法或类,也不允许static修饰abstract方法,即abstract方法必须是实例方法。非abstract类中不可以有抽象方法,abstract类中一定有抽象方法也可以有非抽象方法。
(3)abstract类不能用new运算符创建对象,如果一个非抽象类的父类是抽象类,那么子类必须重写父类的abstract方法。

接口

(1)使用interface来定义一个接口
例如:
interface Print{
final int MAX=100;
void add();
float sum(float x,float y);
}
接口体中包含常量的声明和抽象方法俩部分,接口中只有抽象方法,没有其他方法,而且接口体中所有的常量访问权限都是public,而且是static常量允许省略(public,final,和static等修饰符)所有抽象方法的访问权限都是public(允许省略public和abstract)。
(2)类实现接口
接口由类实现以便使用接口中的方法。一个类需要在类声明中使用关键字implements声明该类实现一个或多个接口。如果实现多个接口需要用逗号隔开。
例如:
class A implements Print,addable
(3)如果一个非抽象类实现了某个接口,那么这个类必须重写这个接口中所有方法。需要注意的是由于接口中的方法一定是public abstract方法,所以重写接口中的方法要去掉abstract并给出方法体,而且访问权限要用public。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值