1.抽象类:abstract
抽象类不可创建对象;
子类继承抽象类,必须重写重写抽象方法;
子类不重写,可将类编程抽象类
普通抽象类:里面的方法不一定全是抽象的
纯抽象类:里面所有的方法都是抽象方法
public abstract class As{
//一个文件里只能有一个带public的类;最好一个类一个文件
//普通抽象类
//含有抽象方法的类必须被声明为抽象类,抽象类必须被继承,抽象方法必须被重写。
//如果重写不了,应该声明自己为抽象。
//抽象类不能被实例化。
//抽象方法只需声明,而不需实现。
public abstract void a1(); //抽象方法
abstract void a2();
public void a3(){
System.out.println("123");
}
}
public class Ad extends As{
public void a1(){
int i=1;
i+=2;
System.out.println(i);
}
void a2(){ //父类方法有public,子类方法也要带public
System.out.println("Scorpion");
}
}
public class Test13{
public static void main(String[] args){
As s=new Ad(); // 子类变父类
s.a1();
s.a2();
s.a3(); //
}
}
2.接口:interface 方法都是public,只能声明,不能实现
接口和接口之间可以继承;
一个类可以实现多个接口;
声明接口,必须应用接口编程
public interface Af{
//接口:方法只能是public,只能声明,不能实现
//接口中只能定义抽象方法,而且这些方法默认为public的、也只能是public的
public void a1();
public void a2();
public void a3();
}
public class Ag implements Af{
public void a1(){
System.out.println("you are " + "Libra");
}
public void a2(){
System.out.println("Scorpio");
}
public void a3(){
System.out.println("Satigg");
}
}
public class Test14{
public static void main(String[] args){
Af a=new Ag();
a.a1();
a.a2();
a.a3();
}
}
3.instanceof实例判断
4.设计模式:23种,分三类:创建、行为、结构
入门模式:简单工厂方法
public interface Shou{
public void maipiao();
public void zhaoqian();
}
class Cheng implements Shou {
public void maipiao(){
System.out.println("give you an bus text");
}
public void zhaoqian(){
System.out.println("give you money");
}
}
class Cheng2 extends Cheng implements Sing{
public void song(){
System.out.println("我来唱歌给大家听吧!掌声响起来");
}
}
class Feng implements Shou{
public void maipiao(){
System.out.println("give you an air text");
}
public void zhaoqian(){
System.out.println("give you money");
}
}
class Feng implements Shou{
public void maipiao(){
System.out.println("give you an air text");
}
public void zhaoqian(){
System.out.println("give you money");
}
}
class Li implements Shou {
public void maipiao(){
System.out.println("give you an train text");
}
public void zhaoqian(){
System.out.println("give you money");
}
}
class Mill {
static Shou s(String type){
if(type.equals("airplane")){
//return new Feng();
return new Feng2();
}else if(type.equals("train")){
return new Li();
}else if(type.equals("bus")){
//return new Cheng();
return new Cheng2();
}else{
return null;
}
}
}
public interface Sing{
public void song();
}
class Test16 {
public static void main(String[] args)
{
Shou sh=Mill.s("bus");
sh.maipiao();
sh.zhaoqian();
Sing si=(Sing)sh;
si.song();
System.out.println("Hello World!");
}
}