折纸的不归路(11)
一.修饰词
final
最终的,组后的,不可修改的
可以修饰什么东西?
修饰类:不允许被继承,该类的功能不再支持扩展
修饰变量:相当于一个常量,在声明阶段要给予初始值
修饰方法:该方法不可以被子类重写
abstract
抽象的
抽象方法:没有方法体的方法叫做抽象方法
public void show();
在方法前面用abstract修饰方法,则该方法为抽象方法,并且没有方法的具体实现
接口(interface)
用来定义规范的
架构师—>告诉你模块中有哪些功能,具体的实现要靠程序员来完成
在person中刚给一个接口
void cutBy(Knife k);
学生管理系统
老师 学生 超管
学生:登录,查看信息
StudentService
public vooid login (String usnm,String pwd);
public Studeng selectSelfInfo(int sno);
老师:登录,查看学生信息(列表)
TeacherService
public vooid login (String usnm,String pwd);
超管:登录,管理用户(增删改查)
AdminService
adduser();
removeUser();
updateUser();
selectUser();
selectUser(String name);
一些语言,类似于c++,支持多继承
鱼,既是动物,也是食物,同时具备两个类的特征
class Fish extends Animal,Food{
eat();
}
Animal {
run();
eat(){} //主动吃什么的方法
}
Food {
do();
eat(){}
}
abstract测试
package com.briup.day09;
public class AbstractTest {
public static void main(String[] args) {
//A a = new A();
A b = new B();
b.show();
b.destroy();
b.display();
C c = new D();
c.destroy();
}
}
abstract class A{
final int i = 0;
static String s;
//展示
public abstract void show();
//销毁
public abstract void destroy();
public A() {
}
public void display() {
System.out.println("这是抽象类中的非抽象方法");
}
}
class B extends A{
//子类B继承抽象类A,必须实现A中的所有抽象方法
//子类B可以选择性的重写B中的非抽象方法
@Override
public void show() {
System.out.println("B show");
}
@Override
public void destroy() {
System.out.println("B destory");
}
@Override
public void display() {
//这个方法在A中具有方法体,所以可以选择性重写
//可以添加功能,可以覆盖
super.display();
System.out.println("新添功能");
}
}
abstract class C extends A{
public abstract void hah();
public abstract void hei();
@Override
public void destroy() {
System.out.println("C destory");
}
}
class D extends C{
@Override
public void hah() {
// TODO Auto-generated method stub
}
@Override
public void hei() {
// TODO Auto-generated method stub
}
@Override
public void show() {
// TODO Auto-generated method stub
}
}
接口和抽象类的相同和不同
相同点
1.都能够定义抽象方法
2.都不能被实例化
抽象类要靠其子类实例化
接口都要靠实现类来实现,接口可以听过匿名内部类的形式来临时new一下
不同点
抽象类只能继承一个,接口可以实现多个
抽象类中可以提供方法的实现,避免子类复杂
接口中一般只提供抽象方法。
访问控制修饰符
public
protected
private
默认:不写
权限分为几类:同类、同包不同类、子父类、不同包
包装类:
对基本数据类型包装成为引用数据类型
为什么要包装
java中变成单元是类—>引用类型
如何用引用类型来包装
二.心得
今天学的东西,接受起来还可以,没有昨天那么吃力,所以今天的大部分时间还是用来看多态的相关内容了.大体上有了更深一步的认识,但是感觉还是不够,明天下午刚好有活动课,利用活动课的时间再次深入看看多态的相关内容把.
上一篇: 谱减法 语音去噪
下一篇: spacemacs的国内镜像