一.抽象类和包:
包:包的本质来说就是文件夹,用来管理文件的。
建包的语法格式:package公司域名倒写.技术名称。
包命名建议全部英语小写,且具备含义。
相同包下的类可以进行直接访问,不同包下的类必须进行导包 import 包名.类名
全类名创建对象
包名+类名 对象名字 = new 报名+类名
抽象类:抽象类是一种特殊的父类,其内部含有抽象方法。
抽象方法:当我们将工性的方法抽取到一个父类中后,发现这个方法在父类中无法给出具体的描述(无法用逻辑描述清楚)而且这个方法,还是子类必须要有的方法,就可以设计成为抽象方法。
讲共性的行为(方法)抽到父类中之后,发现方法的实现逻辑无法在父类中给出具体明确,该方法就可以定义为抽象方法。
抽象类:如果一个类中存在着抽象方法,那么这一个类必须是抽象类。
1.抽象类不能够进行实例化:
实例化就是创建这个类的对象,如果抽象类允许创建对象,就可以调用里面的抽象方法。(因此不能创建对象)
2.抽象类存在构造方法
抽象类存在着构造方法,通过构造方法,让子类通过super来进行访问抽象来访问抽象类。
如下同定义了一个抽象类 test 其中含有抽象方法 object();
3.抽象类中可以存在着普通方法
4.抽象类的子类:
1)要么重写抽象类中的所有抽象方法;
2)要么该类是抽象类。
Final ,private,static和abstract冲突。
Final的意思是最终,使子类不能够进行重写抽象方法。
private修饰的成员,其子类无法访问其成员,而abstract必须要求重写父类总的方法。
被static修饰的成员,可以通过类名调用,但是被static修饰的方法中没有逻辑因此static与abstract冲突。
public abstract class test{
public abstract void object();
public test(){
}
}
二.接口
接口体现的思想是对规则的声明,java中的接口更多体现的是对行为的抽象。
思想:如果发现一个类的所有组成,都是抽象方法,没有成员方法,没有普通方法。
这种类我们通常设计为java中的接口,因此这个类的唯一价值,就是声明规则了。
格式 public interface 接口名称{
}
接口不允许实例化(不能够创建对象)
接口与类之间实现关系,要通过implements关键字来完成的。
接口中的成员:
1.成员变量:只能定义变量,因为系统会自动给定义的变量加上三个关键字 public static final
2.成员方法:只能抽象方法,因为系统会加上 public abstract这两个关键字
3.构造方法:没有
接口与类之间的关系:
1.类和类之间:继承关系,只支持单继承,不支持多继承,但是可以多层继承。
2.类与类之间:实现关系,可以单实现,也可以多实现,也可以进行多层继承。
3.接口与接口之间可以单继承,也可以多继承。
创建了一个接口。
public Interface test{
void protect();
void zoo();
void main();
}
举一个例子
public interface test {
void print();
void main();
}
class zoo implements test{
public void print(){
System.out.println("我学会打印了");
}
public void main(){
System.out.println("我被动吃掉了");
}
public void zoo(){
System.out.println("我是最独特的存在");
}
}