欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

折纸的不归路(11)

程序员文章站 2024-03-18 13:05:52
...

一.修饰词

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中变成单元是类—>引用类型
如何用引用类型来包装

二.心得

今天学的东西,接受起来还可以,没有昨天那么吃力,所以今天的大部分时间还是用来看多态的相关内容了.大体上有了更深一步的认识,但是感觉还是不够,明天下午刚好有活动课,利用活动课的时间再次深入看看多态的相关内容把.

相关标签: java