JAVA基础学习之多态抽象与接口

多态。

 

动态多态用instanceof判断之后,要调用子类的方法,需要强转。

 

异构集合:

存放不同类型的数据

instanceof 判断子类,用强转转换子类来调用子类方法

 

abstract

抽象方法,只有方法的声明没有方法的实现,是父类拥有该方法,但是只有到子类才知道这个方法的具体实现

当一个类拥有一个抽象的方法的时候,这个类叫做抽象类。抽象类是无法实例化。

public abstract  class People{

}

 

当一个类继承一个抽象类,必须要实现抽象类里的抽象方法,否则自己也必须是抽象。

 

抽象类一样有属性,构造器,抽象方法,和非抽象方法。//抽象类不一定要有抽象方法,但是有抽象方法的一定是抽象类。但是没有抽象方法的抽象类,失去了设计的意义。

抽象类的构造器是为了让继承他的子类能够产生对象

抽象类一样可以引用子类的对象

抽象类也是一个类,只能做单继承(is a 关系)

 

 

 

 

 

 

 

接口,使用关键字interface,表明这是一种与类无关的全新数据类型。

访问修饰符只能是public或者默认

接口内属性只能是公共的静态常量

就算一个修饰符不写,直接定义 int a=2; 也会默认为静态公共常量

接口中没有构造方法一说

接口里面,只能有抽象方法(在最新的JDK1.8中,接口可以拥有实现方法,只不过要加default关键字 public default void test (){}

就算不写public abstract,也会默认为公共的抽象方法(不能加static

void a();

接口一样可以用instanceof 一样可以用强转

 

 

开闭原则:一个好的设计,应该对于扩展是开放,对于修改是关闭的

在没有继承关系的类之间,也能让他们具有共享行为,叫做接口, JAVA中的类与类之间的单继承,提供多实现。

我给一个类添加一个新的借口,起名的时候在后面加一个able

 

接口的引用可以指向实现类的对象//只能看到接口的属性和方法及Object

 

接口用法第一,接口可以继承接口而且是可以多继承的( public interface  Aable extends  Babel,Cable{})。第二,类可以实现接口(关键字 implements   public class  A implements Babel{} )类实现接口必须实现接口类所有的抽象方法,否则这个类是抽象类。类实现接口方法的时候可以多实现(public class  A implements BabelCable{}

 

 

 

接口和抽象的不同。

 

在设计的时候需要确认那些方法写入父类,那些写入接口?

答:把一个类与生俱来的方法,写入父类中。把附属添加的行为写到接口上去,最好写入小接口中,提高灵活性。

 

 

 

内聚度(聚合度)与耦合度:好的程序设计应该是高内聚低耦合。前者指的就是复用,后者是分离。

 

面向接口编程是OOP的核心

 

 

 

关于接口的设计和使用中,还不是很熟练。没有充分的理解方法的重写。在创建很多接口,其实应该是类,应该是把类中的一些方法提出来作为接口在不同的类中进行重写,而不是把不同的类写成不同的接口

 

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值