day 2 java

抽象类
只有抽象类才能定义抽象方法
在抽象类中可以定义普通方法,普通变量
子类继承抽象类 子类需是abstract类或者子类必须重写父类的抽象方法
抽象方法没有方法体

eg

public abstract class Anmial {
public abstract void say();//没有方法体

}

class Bird extends Anmial{

public void say() {

	System.out.println("渣渣渣");
}
}

抽象类不能实例化(Animal a =new Animal())错但是可以 Animal a =new Bird() ;
public static void main(String[] args) {
Anmial a=new Bird(); 此时会打印出 创建一个动物 但就Animal a;没有输出

}

}

回调(callback)
Hook 钩子
模版方法模式
eg
public class Panitdraw {

public  static  void  draw(A f){
	System.out.println("N");
	System.out.println("m");
	System.out.println("s");
      f.paint();
      System.out.println("L");
}

public static void main(String[] args) {
	B b =new B();
	draw(b)	;
	}

}

   class A{
	public void paint() {
		System.out.println("A");
	}
	
}

 
  class B extends A{
	 public void paint() {
			System.out.println("B");
		}
 }
  class C extends A{
	 public void paint() {
			System.out.println("C");
		}
 }

N
M
S
L
B

内部类
import Objec.Face.Nose;

public class Outer {
public static void main(String[] args) {
Face f=new Face(); //不能直接调用 Nose n=new Nose();
Nose n = f.new Nose(); // 也可写成 Face。Nose n=f。new Nose
n.breath();
Face.Ear ear=new Face.Ear();
ear.say();
}
}

class Face{      
	int type;     // 非静态内部类 不能定义静态变量 静态方法
	String a="FFF";
static	String b="CCCC"	;	
	class Nose{
	String type;
	 void breath() {
		 System.out.println( Face.this.type);// e 非静态内部类可以使用外部类的成员 反过来不行
		                             
	 }
	 
	}
	static  class Ear   {  //(这是一个静态内部类)有静态内部类实例不一定有外部类实例
    void say(){
    	//System.out.println(a);会报错 静态内部类不能直接访问外部类的非静态变量可以访问外部类的静态变量
    	System.out.println(b);
    }
	
	}
}

输出
0
CCCC

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值