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 }

               

原文地址:https://www.cnblogs.com/shenhainixin/p/5066966.html