和java谈恋爱:本色的她 (抽象类、接口) ---尚硅谷 -课程笔记
来源:互联网 发布:淘宝客服不是人做的 编辑:程序博客网 时间:2024/04/29 05:57
抽象类:
随着继承层次中一个个新子类的定义,类变得越来越具体,而父类则更一般,更通用。类的设计应该保证父类和子类能够共享特征。有时将一个父类设计的非常抽象,以至于它没有具体的实例,这样的类叫抽象类。
less_04
/*
*abstract:抽象的
*1. 可以用来修饰一个类:对应的类叫抽象类
1)抽象类不可实例化
2)具体的类通过继承抽象类的方式,创建子类的实例。
3)当子类继承抽象类之后,由子类重写抽象类中的 方法
4)子类必须重写抽象类机器父类的所有的抽象方法,才能实例化
*2.还可以用来修饰类中的方法,对应的方法叫抽象方法
1)抽象方法不在提供方法体
2)抽象方法所在的类,那一定是抽象类。抽象 类里不一定有抽象方法。
* 不能用abstarct修饰属性、私有方法、构造器、静态方法、final的方法。
*抽象类可以定义构造器!-------》接口是没有构造器的
*/
abstract class Creator{
public void breath();
}
abstract class Person{
private String name;
private int age;
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;
}
public asbstract void talk();
//{System.out.println("人说话");
//}
public asbstract void work(){
system.out.println(“人工作");
}
class Worker extends Person{
public void talk()
{ SYstem.out.println("学生讨论问题!");
}
public void work()
{
system.out.println(”工人讨论技术问题!“);
}
class Student extends Person{
public void talk()
{ SYstem.out.println("学生讨论问题!");
}
public void work()
{
system.out.println("学生不工作");
}
public calss TestAbstract{
//Person p = new Person();
p.talk();
p.work();
Person p1 = new Student();
p1.talk();
p1.work();
}
}
//模板方法的设计模式:执行代码一段代码所花费的时间
abstract class Templete{
public abstarct void code();
pulbic void costTime()
{ long start = system.currentTImeMillis();
code();
long end = System.currentTimeMillis();
System.out.println(”所花费的时间为:“ + (end - start)):
}
class subTemplent extends Templete{
public void code(){
for(int i = 2;i < 100000;i++)
boolean flag = false;
for(int j = 2; j <= math.sqrt(i)j++)
if(i %j == 0 ){
flag = true;
break;
} }
if(!flag){
System.out.println(i);
}
flag = false;
}
}
publci class TestTemplete
}
接口抽象类的一种。
有时必须从几个类中派生出一个子类,继承他们所有的属性和方法,但是java不支持多重继承。
/*
*1.interface 接口名{
*//有常量
*都是声明为public static final 的
*//有抽象方法
*public abstract 的
}
*
*2.接口定义了一种功能。类通过实现接口的形式,就具有了接口的这种功能
3.格式:class B extends c implements A
一个类可以实现多个接口
接口直接可以继承,而且是支持多继承的!
4.接口不可以实例化。同事接口是没有构造器的。
*/
public interface A{
//String name;
public static final double PI = 3.14;
/*public static final*/ int I = 3;
public abstract void method1();
public abstract void method2();
//public void show(){
//}
interface D{
void method3();
}
interface F{
}
interface E extends D,F{}
class c {
}
class B extends c implements A,D{
@Override
public void method1(){
Sysmtem.out.println("hello");
}
@Override
public void method2(){
Sysmtem.out.println("atguigu");
}
public void method3(){
Sysmtem.out.println("光棍节快乐!");
}
}
public class TestInterface{
}
public class TestUSB{
public static void main(){
computer c = new computer();
c.useUsb()new Print()); //多态
c.useUsb(new USB(){ //可以理解为实现了USB接口的一个匿名类的对象
@Overrid
public void Start(){
System.out.Println()"";}
@public void stop(){}
});
}
}
interface USB{
void Start();
void stop();
}
class Computer{
pulbic void useUsb(USB usb)
{
usb.start();
System.out.println(""USB工具开始运行=======);
usb.stop();
}
class Print implenments USB{
@OVerride
public void start(){
System.out.println(U盘启动)"":
}
public void start(){
System.out.println()"":
}
}
}
class Flash implements USB{
@OVerride
public void start(){
System.out.println(U盘启动)"":
}
public void start(){
System.out.println()"":
}
}
代理模式(proxy)为其他对象提供一种代理以控制对这个对象的访问。
工厂方法:
FactoryMethod模式
public clas TestFactory{
pulbic static void main()
{
IWorkFactory if1 = new studentWorkFactory();
if1.getWork().doWork();
IWorkFactory if1 = new TeacherWorkFactory();
if2.getWork().doWork();
}
interface IWorkFactory{
work getWork();
}
class studentworkFactory implements IWorkFactory
{
public work getWork(){
return new student();
}
}
class TeacherWorkFactory implements IWorkFactory{
public work getWork(){
return new Teacher();
}
}
interface Work{
public abstarct void dowork();
}
class studentwork implements work{
public void doWork(){
System.out.println("学生学习");
}
}
class TeacherWork implements work{
public void doWork(){
System.out.println("老师批改作业");
。单例模式:
final
.........
- 和java谈恋爱:本色的她 (抽象类、接口) ---尚硅谷 -课程笔记
- 尚硅谷Java基础笔记
- 尚硅谷Java基础学习笔记一
- 尚硅谷Java基础学习笔记二
- 尚硅谷Java基础学习笔记三
- 尚硅谷Java基础学习笔记四
- 尚硅谷Java基础学习笔记五
- javaweb 尚硅谷笔记
- 【学习笔记】Java抽象类和接口的一些总结
- Java学习笔记:接口和抽象类 之间的探讨
- Java学习笔记-抽象类和接口的区别
- java笔记 抽象类和接口总结
- java笔记之抽象类和接口
- java抽象类和接口(学习笔记)
- [学习笔记]Java抽象类和接口
- Java学习笔记---抽象类和接口
- 【Java学习笔记】接口和抽象类
- [学习笔记]Java抽象类和接口
- Perforce集成Active Directory域控制器登陆设置方法
- 十六、数据处理问题的若干补充
- reproducing kernel Hilbert space
- 工作以后如何做读书笔记
- 输出二个年份之间的闰年
- 和java谈恋爱:本色的她 (抽象类、接口) ---尚硅谷 -课程笔记
- 11周 求组合数
- 最全最多的黑客教程资料
- Irrlicht学习之添加中文的支持
- php设置session的最大保留时间
- HM12.0中的运动估计中的distortion的计算
- 图解SQL的Join
- 【Java TCP/IP Socket】Java NIO Socket VS 标准IO Socket
- BitmapToByteArray和AnimationManager