JAVA接口
、
- 继承:
代码利用的方式,子类与父类之间的关系
语法 |
访问控制修饰符 class 类名 extends 父类名{ } |
访问控制修饰符:public protected default private
规则:
- 同一个包类,子类可以得到父类private(私有)之外的所有属性和方法
- 在不同的包内,子类只可以得到父类public修饰的属性和方法
java类的祖先:Object
-
- equals():比较地址是否相同
- hasCode():
- toString():输出类句@16进制的哈希值
- 重写:
子类覆盖父类同名的方法
final关键字:不可变
public static final PAGE_SIZE = 18;
final修饰的类不能作为父类被子类继承
- 多态:
多种形态:随着父类/接口指针指的不同,同一段代码执行时呈现出不同的结果
一、接口
作用:用来定义规则。
注意:
- 接口中所有东西全部都是public(公共) 的
- 对于 常量 系统会 默认 加上public static final
- 对于 方法申明 系统会 默认 加上public abstract
- 接口实验类 不能 从接口中得到 静态方法
- 接口实验类 可以 从接口中得到 默认方法
- 静态方法 只能 通过接口的名称来访问
接口用来定义语法规则,让别的类实现
语法:
控制修饰符 class 类名 implements 接口名{
//接口中抽象方法的实现
}
eclipse源代码:
1 package day10; 2 public class 接口 { 3 //定义接口 4 public interface Traffic{ 5 public static final int sits = 4; 6 public abstract void run(); 7 public abstract void stop(); 8 } 9 //调用接口 10 public class bwm implements Traffic{ 11 12 @Override 13 public void run() { 14 System.out.println("bwm:500km/h"); 15 } 16 @Override 17 public void stop() { 18 System.out.println("bwm:10m"); 19 } 20 } 21 22 } 23 package day10; 24 import day10.接口.Traffic; 25 //测试: 26 public class 接口的测试类 { 27 public static void main(String[ ] args) { 28 Traffic traffic; 29 traffic = new cat(); 30 System.out.println(traffic.sits); 31 traffic.run(); 32 traffic.stop(); 33 } 34 } 35 示例: 36 public interface Traffic { 37 public static final int SEATS = 5; 38 public abstract void run(); 39 public abstract void brake(); 40 41 static void fun1() { 42 System.out.println("static"); 43 } 44 45 default void fun2() { 46 System.out.println("default"); 47 } 48 } 49 public static void main(String[ ] args) { 50 Traffic.fun1(); 51 52 Traffic traffic = new BWM(); 53 traffic.fun2(); 54 //traffic.fun1(); 55 56 BWM bwm = new BWM(); 57 bwm.fun2() 58 }
抽象类
-
- 包含抽象方法的类叫抽象类
- 抽象类,需要使用 abstract 关键字修饰
- 抽象类中可以 有普通的方法
- 抽象类中可以 包含抽象方法
- 抽象类和普通类唯一的区别:它使用abstract修饰,里面可以有抽象方法。
- 不能使用抽象类创建对象,即使这个抽象类中没有抽象方法
示例:
1 package day10; 2 public class 抽象类 { 3 public abstract class AA { 4 5 6 private int a; 7 private static final int b = 2; 8 9 10 static { 11 } 12 13 { 14 } 15 public AA() { 16 } 17 18 abstract void fun(); 19 20 void fun1() { 21 } 22 23 public static void main(String[] args) { 24 new AA(); 25 } 26 } 27 }
内部类:
定义在一个类/方法中的类
1 public class ABC { 2 class A { 3 } 4 public void fun() { 5 class B{ 6 } 7 } 8 }