接口和抽象类以及一些快捷键 面向对象三大特性

【Eclipse 快捷键】
批量注释(取消注释) ctrl+/
添加javadoc注释 alt+shift+j
点击跳转到类(方法) ctrl+鼠标左键点击
逐层返回 alt + ←
自动扫描包(需要就import,不需要的自动删除) ctrl+shift+o
查看类的层次关系 ctrl + t

【术语】
抽象方法 abstract methods
抽象类 abstract class
【has a】 / have a 类内部
【is a】
* like a

【继承】 extends
父类、子类
子类 extends 父类 : 【is a】
Object 【根类、基类】
如果一个类什么都没继承,默认继承一个顶层类(基类)

【指针】
this 指针
当前对象
super 指针
上一级父类的

【抽象类/抽象方法】
父类中方法,在子类中通过【重写】来增强(调整)功能
【重写】没有强制性,可以不做
如何“强制”子类必须做?
① 方法修饰符增加abstract,这时方法称为【抽象方法】
② 不要方法体 {} , 末尾加个分号
一个子类可以有多个层次的父类(BMW * <- Car <- Object)

【包】package
磁盘形式
作用


隐私(谁也不给说) —— 更小范围(自己) 【私有】
中大奖(5亿) —— 小范围 【保护】
民族、省 —— 大范围 【公开】

家庭成员

类创建出来的对象都是互相独立的(不同),即使是同一个类的对象

【访问控制】成员(属性、方法)
访问:调用、使用
级别(4个):
私有 private
默认的
保护 protected
公开 public
级别越大,封装性越差

【获取类的属性的值】 在同一个包中
方式1:属性对应的get方法 【间接访问】
方式2:对象名.属性名 【直接访问】
本类中对默认级别的属性可以直接读、写
private修饰的成员不能直接读写

面向对象三大特性
【封装性】安全 (银行存折)
使用private修饰符把类的一些成员隐藏起来
对私有属性而言,如果要提供读、写,需要定义public的get、set方法

【继承性】 extends	
	……

【多态】在类继承的基础上
一种事物表现出的多种不同形态(在不同环境中,"橘生淮南")
1) 引用多态(类的多态)
	子类的类型能自动转为父类的(java中子类只有一个父类【单继承】)
	父类的类型不能自动转成子类的(一个类可以有多个子类),强制
	
	在调用方法的时候根据子类类型调用自己的
		bmw对象调用MyBMW的youTeSe()
		hg对象调用MyWuLingHongGuang的youTeSe()
2) 方法多态
	重载、重写	

【面向对象特性】☆
封装:类内部(隐藏实现的一些细节) 提高安全性
继承:类和类之间 提高代码重用性(少写),维护
多态:两种形式(引用多态、方法多态) 降低模块之间的【耦合性】,扩展 mvc

【接口】interface(an abstract type)
面向接口程序设计
所有的方法都是只有定义(method signature),没有实现(方法体)
定义好之后,可以同时编写:
①方法的调用;②方法的实现;
构成(public):
抽象方法( abstract 通常省略 )
public abstract
常量
public static final
An interface in the Java programming language is an abstract type
that is used to specify a behavior that classes must implement.

Interfaces are declared using the interface keyword,
and may only contain method signature and constant declarations
(variable declaratire declared to be both static and final).

An interface:
declares only method headers and public constants.
cannot be instantiated.
can be implemented by a class.
cannot extend a class.
can extend several other interfaces.

★★★★★JDK高版本可以带实现代码(方法体)、static(main)
All methods of an Interface do not contain implementation (method bodies)
as of all versions below Java 8. Starting with Java 8, default and static methods
may have implementation in the interface definition.

_______________________

【一些原则】

原则1:【抽象方法】必须存在于【抽象类】中;
抽象类中可以没有抽象方法!!!
原则2:多态是在继承的基础上
原则3:使用final
修饰的类,不能被继承
修饰的变量,值不能改变 —— 【常量】
修饰的方法,不能被重写
原则4: 接口是an abstract type(方法都不能有实现),必须使用class来实现
原则5:接口不能被实例化,但可以把实现类的对象转为接口类型

???

【笔试面试】
方法:
构造方法、普通方法、静态方法、抽象方法
类:
普通类、抽象类、接口
【抽象类 vs 接口】
相同
不能实例化(不能创建对象)
都可以包含抽象方法
如果子类(实现类)没有实现全部的抽象方法,必须定义为抽象的

	不同
		定义:
			抽象类使用 abstract , 接口使用 interface
			接口可以继承多个接口,类只能继承一个类
		组成
			属性
				接口不能有变量
			方法
				接口不能有方法的实现(不能有构造方法、普通方法)
		使用:
			一个类只能继承一个抽象类,但是一个类可以实现多个接口

接口的wikipedia
https://en.wikipedia.org/wiki/Interface_(Java)

猜你喜欢

转载自blog.csdn.net/NaXieNianWoMenYiQ/article/details/87888791