• 抽象类(abstract class)


     1 package com.bjsxt.oop.abstractClass;
     2 //抽象类
     3 public abstract class Animal {
     4     //因为父类的方法总是被重写 那就没写的必要了 但是有声明的必要 声明成抽象方法  包含了 抽象方法的类 是抽象类 必须加上关键字 abstrat
     5     /*
     6     public void run(){    
     7     }
     8     */
     9     //下面是抽象方法 只是声明没有实现 所以也就没有{}
    10     public abstract void run();
    11     //普通方法
    12     public void breath(){
    13         System.out.println("呼吸");
    14     }
    15             
    16 }
    17  //如果一个类继承抽象类 那必须  1.实现抽象类 或者 2.你定义一个抽象类 去继承另外一个抽象类
    18 /*The type Cat must implement the inherited abstract method Animal.run()
    19 class Cat extends Animal{
    20 }
    21 */
    22 // 1.实现抽象类,重写了抽类型的方法 完成了具体实现
    23 class Cat extends Animal{
    24     //@override是注解 含义 必须重写 不能改名
    25     @Override
    26     public void run() {
    27         System.out.println("猫步跑");    
    28     }
    29 }
    30 // 2.你定义一个抽象类 去继承另外一个抽象类
    31 //abstract class Cat extends Animal{
    32 //}
    33 class Dog extends Animal{    
    34 @Override
    35 public void run() {
    36     System.out.println("狗跑");
    37     }
    38 }
    39 
    40 
    41 /**
    42  * 总结
    43  * 为什么需要需要抽象类?如何定义抽象类?
    44  * 抽象类是为所有的子类提供了一个通用模板,子类可以通过这个模板进行扩展
    45  * 通过抽象类,可以避免子类设计的随意性,通过抽象类,我们就可以找到很严格的限制子类的设计,使子类之间更加通用、。
    46  * 
    47  * 要点
    48  * 有抽象方法的类智能定义成抽象类
    49  * 抽象类不能实例化,既不能用new来实例化抽象类
    50  * 抽象类可以包含属性,方法,构造方法。但是构造方法不能用来new实例,只能用来被子类调用。
    51  * 抽象类只能用来继承
    52  * 抽象方法必须被子类实现。
    53  */
     1 package com.bjsxt.oop.abstractClass;
     2 
     3 public class Test {
     4 
     5     /**
     6      * @param args
     7      */
     8     public static void main(String[] args) {
     9         
    10 //        Animal a = new Animal();
    11 //        调用了抽象类的构造方法 即使他存在
    12 //        * 要点
    13 //         * 有抽象方法的类智能定义成抽象类
    14 //         * 抽象类不能实例化,既不能用new来实例化抽象类
    15 //         * 抽象类可以包含属性,方法,构造方法。但是构造方法不能用来new实例,只能用来被子类调用。
    16 //         * 抽象类只能用来继承
    17 //         * 抽象方法必须被子类实现。
    18     }
    19 
    20 }
  • 相关阅读:
    Linux的学习--系统目录
    PHP内核的学习--创建PHP扩展
    PHP的学习--连接MySQL的三种方式
    MIME Type
    颜色的命名
    JavaScript的学习--生成二维码
    MySQL的学习--触发器
    Google Guava之--cache
    java代码调用oracle存储过程
    oracle序列
  • 原文地址:https://www.cnblogs.com/PoeticalJustice/p/7623787.html
Copyright © 2020-2023  润新知