Java杂记2--abstract类与接口

1.对象的上转型对象

假如A类是B类的父类,当用子类创建一个对象,并把对象的引用放到父类的对象中。

如:

A a=new B();

A a;
B b=new B();
a=b;

称a是b的上转型对象

有如下特点:

(1)上转型对象不能操作子类新增的成员变量,不能调用子类新增的方法。

(2)上转型对象可以访问子类继承或隐藏的成员变量,也可调用子类继承的方法或子类重写的方法。

          上转型对象操作子类继承的方法或子类重写的方法,其作用等价于用子类对象去调用这些方法。


注意:(1)父类创建的对象不等同于子类对象的上转型对象。

             (2)若将对象的上转型对象强制转换到一个子类对象,这时,子类对象又具备了子类所有的属性和功能。

             (3)不可以将父类创建的对象的引用赋给子类声明的对象。


2.abstract类(抽象类)特点

抽象类只关心操作,即关心方法的名字、类型、参数,不关心这些操作具体实现的细节,即不关心方法体。

(1)abstract类中可以有abstract方法。也可以有普通方法。

(2)abstract类不可以用new运算符创建对象。


注意:

(1)abstract类也可以没有abstract方法。

(2)如果一个abstract类是abstract类的子类,它可以重写父类的abstract方法,也可以继承这个abstract方法。


3.接口的特点

接口只关心操作,并不关心操作的具体实现。

(1)接口中只有抽象方法,没有普通方法,只有常量,没有变量。且所有常量和方法的访问权限一定是public。

(2)如果一个类实现了某个接口,那么这个类必须重写该接口的所有方法。注意的是,接口中的方法一定是public abstract方法,所以

          类在重写接口方法时不仅要去掉abstract修饰给出的方法体,而且方法的访问权限一定要明显的用public来修饰(否则就降低了访问权限,这是不允许的)。

(3)public接口可以被任何一个类声明实现,若接口不加public就称为友好接口,友好接口可以被与该接口在同一包中的类声明实现。


注意:

(1)若父类实现了某个接口,那么子类也就实现了该接口,子类不必再显式的使用关键字implements声明实现这个接口。

(2)接口也可以被继承,即通过extends声明一个接口是另一个接口的子接口。由于接口中的方法和常量都是public,子接口将继承父接口中的所有方法和常量。


总结自 《Java面向对象程序设计》第二版 耿祥义 张月平 编著

第五章 继承与接口
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值