抽象类、接口、内部类
抽象类,接口,内部类
抽象类 、抽象方法
public abstract class Action{
public abstract viod run();
public abstract void sayHello(){
System.out.println("你好");
}
}
1.抽象方法可以不用写出具体实现,抽象方法只能存在于抽象类中
2.抽象类不能用new关键字实例化,只能有子类区实现
3.抽象类可以有具体的方法
public A extends Action{
@override
public void run(){
System.out.println("跑步");
}
}
4.抽象方法必须由子类重写
接口interface
接口只有规范,定义的是一组规则(你是...你必须...)
接口的本质是契约
接口定义
public interface UserService{
void run(String name);//public abstract void run();接口中默认是public abstract
}
接口的实现
public class user implements UserServier{
@override
void run(String name){
System.out.println("跑步");
}
}
小总结
1.接口就是一种约束,你能干什么被接口中的抽象方法定义
2.接口中的抽象方法默认关键字是public abstract
3.接口中常量默认public static final (基本不会在接口内定义常量)
4.接口不能被new关键字实例化(和抽象类一样)
5.implements可以实现多个接口
public interface userService{}
public interface timeService{}
public class user implements userServier,timeServier{}//格式
6.实现接口后必须要重写接口内的抽象方法
内部类
1.成员内部类(定义在类的内部)
public class out{
class in{
out A = new out();
out.in B = A.new in();//内部类的实例化借由外部类
}
}
1.内部类的实例化借助外部类来实例化。
2.内部类可以获取外部类的私有属性
2.静态内部类(关键字static修饰)
public class out{
static class in{}
}
3.局部内部类(方法内)
4.匿名内部类
public class test{
public static viod main(String args[]){
new Apple.eat();//没有名字初始化类,匿名内部类
}
}
class Apple{
public void eat(){
System.out.println("吃苹果");
}
}

浙公网安备 33010602011771号