Person
–Student
–Teacher
必须保证有age属性
要求:分别创建5个对象,person,student,teacher
根据这5个对象的年龄进行排序
p1 = 30
s1 = 45
s2 = 23
t1 = 35
t2 = 50
数组:
Person[] per = new Person[5]; //多态数组
per[0] = new Student(23); //多态
per[1] = new Teacher(50); //多态
per[2] = new Person(30); //本态
排序:
遍历数组:
接口:
特殊的类
修饰符 interface 接口名{
}
成员:
常量: public static final
抽象方法: public abstract
由于是用interface定义的,所以接口中成员都是有固定修饰符的,因此,如果漏写了哪个修饰符,编译器会自动补全。
接口中的成员都是公共成员。
特点:
1.不能实例化
2.接口必须有子类,子类实现(implements)接口,子类想要建立对象,子类必须将实现的接口中的方法全部实现(重写覆盖)
类与类:单继承
类与接口: 多实现
接口与接口: 多继承
class A extends B implements C,D{}
class A extends B{}
class B implements C,D{}
作用:
1.扩展继承体系中以外的行为
2.定义规则
abstract class 电子产品{
abstract 开机();
abstract 关机();
}
interface 游戏{
abstract void 游戏();
}
class 手机 extends 电子产品 implements 游戏{
void 开机(){}
void 关机(){}
public void 游戏(){}
}
class 电脑 extends 电子产品 implements 游戏{
void 开机(){}
void 关机(){}
public void 游戏(){}
}
class 手环 extends 电子产品{
void 开机(){}
void 关机(){}
}
包:
package,相当于我们说的文件夹或者是目录
作用:
1.用于管理类文件
2.解决同名文件问题
语法:
package 包名;
位置:必须放在有效代码的最上边。
作用:告诉编译器,当前类要存放在哪里。
eg: package com;
public class Demo{
}
包名:
1.包名全部小写
2.格式: 公司域名倒置.项目名.模块名.[子模块名]*;
package com.ujiuye.cms.view;
public class Demo{
}
注意:如果类中声明了package语句,那么类名就有了限制,完整类名形式为:包名.类名
带包编译:
javac -d 目录 源文件名.java
带包执行:
java 包名.类名
import:
导入
import 包名.类名; 导入指定包中的类。
import 包名.*; 导入指定包中的所有类。
放在package下边 和声明类或者是接口的上边
Public protected 默认 private
同类 - - - -
同包 - - -
不同包子类 - -
所有 -