zoukankan      html  css  js  c++  java
  • 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 }

                   

  • 相关阅读:
    iOS高仿微信项目、阴影圆角渐变色效果、卡片动画、波浪动画、路由框架等源码
    微信之:after和:before的作用及使用方法
    vue项目查看vue版本及cli版本及版本升级
    Mac下安装,升级Node、npm
    ESLint在Vue中的使用详解
    MAC下vue的安装
    Flutter 插件的创建及使用
    怎么查询对方qq的ip地址 如何通过qq查看对方ip
    iOS-weak修饰的对象被释放时,weak指针自动被置为nil的实现原理
    Could not get unknown property 'versions' for object of type com.android.build.gradle.AppExtension
  • 原文地址:https://www.cnblogs.com/shenhainixin/p/5066966.html
Copyright © 2011-2022 走看看