9、抽象类和接口

1、抽象类

抽象类不能被实例化(不能new对象),它的作用是提供给其他类进行继承。

关键字abstract

修饰类,类为抽象类,不能被实例化;

修饰方法,方法为抽象方法,只有方法的签名,没有方法体;

如果父类中定义了一个抽象方法,子类中必须重写此方法。

抽象类特点:

1)抽象类不能实例化,即抽象类不能创建对象;

2)子类继承(extends)抽象类,必须实现该抽象类当中所有的抽象方法(除非子类也是一个抽象类);如果父类的父类也是抽象类,那么需要重写所有的抽象方法。

3)抽象类,可以包含抽象方法和非抽象方法(普通方法)以及变量;

4)如果一个类包含抽象方法,那么该类一定要声明为抽象类,否则将出现编译错误;

5)抽象类中也可以不包含抽象方法

6)抽象类可以有父类,但是父类必须有一个无参的构造函数,否则,抽象类必须声明一个与父类相同的有参构造方法;

2、接口

接口是一种比抽象类还抽象的类型,是抽象方法和常量值的定义的集合声明接口关键字interface

实现接口关键字implements

接口的特点︰

1)用interface关键字声明接口;

2)子类实现接口,并重写接口的所有的方法;

3)接口只有方法的签名,没有普通方法,也没有变量,可以有常量,不能被修改;

4)接口不能自身实例化,接口的实现类可以实例化;

5)接口可以实现多个,而父类只有一个(单亲继承),而且必须先继承(extends)父类再实现(implements)接口,重写接口所有方法;

6)接口中的方法都是抽象方法,默认方法前边public abstract

public interface a {

public void a();

void b();

}

7)接口可以继承多个接口

接口的优点:

1)解决Java中的单亲继承问题(继承只能单亲继承,但是一个类可以实现多个接口)

2)接口可以实现并行开发

3)便于重构

3、类型转换

向上转型:子类对象向父类转型

1)将一个【父类的引用】指向一个子类对象,称为向上转型;此时自动进行类型转换(即可以理解为创建了一个父类类型的子类对象)

2)通过父类的引用调用的方法,是子类重写或继承父类的方法,而不是父类原本的方法,更不是子类特有的方法;

3)通过父类的引用无法调用子类特有的方法,即向上转型的子类对象只能调用继承自父类的方法,而不能调用子类独有的方法,方法数量缩小,安全

向下转型:父类对象向子类转型

父类对象向子类转换需要强制类型转换;

1)将一个指向子类对象的父类引用赋给一个子类的引用,称为向下转型

instanceof:判断某一个对象是不是属于某一类型

boolean a= dog instanceof Dog;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值