JAVA学习笔记之抽象类和接口,instanceof

JAVA学习笔记之抽象类和接口,instanceof

JAVA学习笔记之抽象类和接口,instanceof Java码农

2016-09-04 09:50软件设计中的开闭原则(OCP: Opean Close principle)

开:对需求的扩展,功能的增加是开放的闭:对代码的修改时关闭的(尽量不要修改以前的代码)抽象类:Why: 抽象类是软件设计过程中的半成品,在软件设计中多个类有相同的属性和方法,这样为了避免相同的属性和方法在多个类中的重复定义,我们需要把相同的方法和属性放到一个基类中去,这样其他类就继承这个类,扩展这个基类的代码,这样相同的代码就不会写n遍啦,体现啦面向对象的可复用性。半成品:一半已经实现啦。 另一半还没有完成。What:什么是抽象类?包含一个抽象方法的类叫做抽象类。1.抽象方法:没有方法体的方法。2.类中只要有一个抽象方法,就必须把类定义成抽象类。抽象类中可以有普通方法(带有方法体)也可以由抽象方法。3.抽象类不可以创建对象,抽象类是个半成品,还没有设计完成。4.如果想要使用子类创建实例,必须重写抽象类所有的抽象方法,除非子类也是抽象类。换句话说,子类没有完全实现父类的抽象方法,那么子类也要定义成抽象类。5.抽象方法不能使用private修饰,只能使用

public default protected修饰。6.抽象类可以没有抽象方法吗? 可以,抽象类可以没有抽象方法。包含抽象方法的类一定是抽象类,抽象方法内不一定有抽象方法。7.抽象的方法可以被定义成static吗? 不能,抽象方法在子类中一定要被重写,但static修饰的方法在子类中不能被重写。静态的方法使用 类名.方法名()调用,抽象方法没有方法体,调用它没有什么意义。所以不能用static 修饰。8.抽象方法可以定义成final的吗?答:不能,final修饰的方法不能被重写,而抽象方法必须的重写。9.抽象类不能用final修饰,应为实现抽象类一定要被继承。而final 修饰的抽象类不能被继承。 接口:接口的若干知识点:1.使用interface定义接口 ,子类实现接口 使用implements2.接口的方法 都是 抽象方法 即使 不加 abstract 编译器在编译的时候会自动给你加上abstract.接口不能有普通方法(即带有实现的方法)抽象类与接口的区别?用途上的区别:抽象类:软件设计中的半成品。接口:是一种规范,用来把产品联系起来。从语法上说:思路 :从类的组成部分上说class 类{//属性//初始化块//构造函数//方法}属性: 接口的属性必须是 public static final,即使我们定义的时候没有加编译器也会自动加上这三个关键字。方法:接口中的方法 都是抽象方法 public abstract ,抽象类可以有普通方法(即带有实现的方法)构造函数:接口没有构造函数,抽象类可以有构造函数初始化块: 接口不能有初始化

块和静态初始化块 抽象类都可以有java中继承是单继承一个类只能继承一个类接口可以扩展多个接口(把多个小的规范和成一个大的规范),抽象类只能扩展一个类面试题1:接口的好处:1.对于使用者来言,不用改代码;2.保证啦代码的通用性;3.使用接口可以使类的使用者和具体类解耦;高内聚,低耦合耦合:事物与事物之间的关系,只要有关联,继承,实现,依赖的关系都叫耦合。强耦合的坏处:不好维护。对象引用 instanceof 类名判断 前面的对象引用 是不是 后面的类的实例,如果是返回true不是返回false

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4