活动地址:CSDN21天学习挑战赛
package com.alibaba.fastjson.api;
相同包下的类可以直接访问,不同包下的类必须导包才能正常使用。格式:import 报名.类名
假如一个类需要用到不同类,两个类名相同,默认只能导入一个类,另一个类需要带包名访问
import java.lang.String;
1、把功能相似或相关的类或接口组织在同一个包中,方便类的查找和使用。
2、如同文件夹一样,包也采用了树形目录的存储方式。同一个包中的类名字是不同的,不同的包中的类的名字是可以相同的,当同时调用两个不同包中相同类名的类时,应该加上包名加以区别。因此,包可以避免名字冲突。
3、包也限定了访问权限,拥有包访问权限的类才能访问某个包中的类。
Java 使用包(package)这种机制是为了防止命名冲突,访问控制,提供搜索和定位类(class)、接口、枚举(enumerations)和注释(annotation)等。


public final class Season {
public static final String SPRING = "春天";
public static final String SUMMER = "夏天";
public static final String AUTUMN = "秋天";
public static final String WINTER = "冬天";
public static void main(String[] args) {
System.out.println(SPRING);
System.out.println(SUMMER);
System.out.println(AUTUMN);
System.out.println(WINTER);
}
}
- 枚举是Java中特殊类型
枚举作用:为了做信息的标志和分类
enum 枚举名{ 枚举值表 };
enum Season {
SPRING, SUMMER, AUTUMN, WINTER;
}
修饰符 absctract class 类名{
修饰符 abstract 返回值类型 方法名称(形参列表)
}
public abstract class Person {
public abstract String Sing();
}
public abstract class Person {
public abstract void Sing();
}
当系统中出现同一个功能,多处开发,功能代码基本相同,部分不同
-模板实现步骤
定义一个抽象类
定义2个方法,一个是模板方法,把相同代码封装好,不同代码定义成抽象方法
子类继承抽象方法,重写抽象方法
模板方法直接让子类使用,防止子类重写模板方法,更安全、专业
提高代码复用性
定义通用结构,不能确定的方法定义成抽象方法,交由子类重写
指对象有多种形态
定义:
父类类型 对象名称 = new 子类构造器;
Person person = new Student();
Person person = new Student();
person.eat("吃饭。。。。");
多态下不能使用子类的独有功能
从父到子(必须强制类型转换):子类 变量 = (子类)(父类类型变量)
作用:可以解决多态下的优势,实现调用子类的独有功能
注意:有继承/实现关系的类可以在编译阶段进行类型强制转换;如果转型后的类型和真实对象的类型不同,报:ClassCastException错误
Student a = (Student)b;// 出现异常 ClassCastException
变量名 instanceof 真实类型
判断类型是否一致,是返回true,否则返回false
public class Person {
private String name;
private int age;
public void eat(){
System.out.println("人天生就会吃");
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
public class Teacher extends Person{
private String ClassName;
public void teacherCourse(){
System.out.println("老师必须要会授课");
}
public String getClassName() {
return ClassName;
}
public void setClassName(String className) {
ClassName = className;
}
@Override
public String toString() {
return "Teacher{" +
"ClassName='" + ClassName + '\'' +
'}';
}
}
public class Season {
public static void main(String[] args) {
Person person = new Teacher();
if(person instanceof Teacher){
System.out.println(true);
}
}
}