Java面向对象_抽象类、接口
一、抽象类
概 念:很多具有相同特征和行为的对象可以抽象为一个类;很多具有相同特征和行为的类可以抽象为一个抽象类
关键字:abstract
规 则:1.抽象类可以没有抽象方法,有抽象方法的类必须是抽象类
2.非抽象类继承抽象类必须实现所有抽象方法
3.抽象类可以有方法和属性
4.抽象类不能被实例化
5.抽象类不能声明为final(用final声明的类不能被继承,而抽象类就是要被别的类继承)
1 public class Practice14 { 2 3 public static void main(String[] args) { 4 // TODO Auto-generated method stub 5 6 } 7 } 8 //具体类继承抽象类必须要实现抽象方法 9 class Man extends Person{ 10 //实现抽象类的抽象方法 11 public void eat(){ 12 System.out.println("大口吃饭"); 13 } 14 } 15 class Women extends Person{ 16 public void eat(){ 17 System.out.println("小口吃饭"); 18 } 19 } 20 //抽象类 21 abstract class Person{ 22 private String name; 23 24 public String getName() { 25 return name; 26 } 27 28 public void setName(String name) { 29 this.name = name; 30 } 31 32 public abstract void eat();//没有实现,抽象方法。有抽象方法的一定是抽象类,抽象类不一定有抽象方法 33 }
二、接口
概 念:1.接口是一组行为的规范、定义
2.使用接口,可以让我们的程序更加利于变化
3.接口是面向对象编程体系中的思想精髓之一
4.面向对象设计法则:基于接口编程
使用规则 :1.接口可以继承多个接口
2.一个类可以实现多个接口
3.抽象类实现接口可以不实现方法
4.接口中所有方法访问权限都是public
5.接口中定义的属性都是常量
1 public class Practice14 { 2 3 public static void main(String[] args) { 4 // TODO Auto-generated method stub 5 Girl g=new Girl(); 6 g.cry(); 7 g.eat(); 8 } 9 } 10 //一个类实现多个接口 11 class Girl implements Hit,Eat{ 12 public void cry(){ 13 System.out.println("哭"); 14 } 15 public void eat(){ 16 System.out.println("吃"); 17 } 18 } 19 //接口 20 interface Hit{ 21 String info="";//属性就是常量 public static final 22 void cry();//接口中的方法默认为public 23 } 24 25 interface Eat{ 26 void eat(); 27 public default void print(){//默认的方法,jdk1.8中加入的新特性 28 System.out.println("default"); 29 } 30 }