zoukankan      html  css  js  c++  java
  • java学习中,抽象类的使用(java 学习中的小记录)

    java学习中,抽象类的使用(java 学习中的小记录)作者:王可利(Star·星星)

    抽象类(abstract 修饰):

    一个类如果被abstract修饰,那么这个类就叫抽象类。

    子类继承父类,但是父类里面的方法,子类可以重写,但是重写的话,父类的方法跟子类的方法又不搭配,就产生了矛盾。

    如:一个动物类:有一个用腿跑的方法。有一个鱼的类继承动物类,但是鱼不会用腿跑,所以不用重写父类的方法,就产生了矛盾。

    所以需要一个方法强制子类重写父类中的某一个方法,就用到了abstract关键词修饰。

    abstract 关键字的使用注意事项:

    1.如果 abstract 修饰方法,那么这个方法就叫抽象方法。

    2.抽象方法是没有主题的,是没有方法的具体实现(没有大括号)。如:abstract public void run();

    3.如果一个方法没有主体(主体也叫方法体,也叫函数块、函数体 )(没有大括号),必须要用 abstract 来修饰。

    4.如果一个类中有抽象方法,那么这个类就必须使用 abstract 来修饰。

    5.一个非抽象类如果继承了一个抽象类,必须实现抽象类父类中的所有方法,重写里面的方法。

    6.一个抽象类中是可以有非抽象的方法的,也可以存在构造方法的。构造方法的作用可以让子类能够初始化父类中的变量。

    7.抽象类是不能创建对象的。原因:抽象类如果创建了对象的话,对象调用抽象方法的话是没有意义的,抽象方法是没有主体的。

    8.抽象类中是可以不出现抽象方法的。

    9.abstract 不能和那些关键字连用:

       1.private(私有的是不能重写的,但是抽象类是必须要重写的就矛盾了)

       2.static(静态修饰 可以直接类访问了,抽象类是针对对象的,所以不能)

       3.final (定义了就不能改了,抽象类是必须重写的,又不能改的话就矛盾了)

    abstract 关键字的使用场景:

    我们在描一个事物的时候吗,发现这个事物确实存在某种行为,但是这种行为又不具体,那么这个时候就可以抽取这种行为声明一个没有实现的行为方式。那么这种行为我们就叫做为抽象行为。就需要用到抽象类了。

     1 package study;
     2 
     3 abstract class Animal{
     4     String name;
     5     String color;
     6     
     7     abstract public void run() ;
     8 }
     9 class Dog extends Animal{
    10     public void run(){
    11         System.out.println(name+"跑得很快");
    12     }
    13 }
    14 class Fish extends Animal{
    15     //需要重写方法(没有强制重写,因为鱼不能跑,没退腿)
    16     //应该需要重写,但是可以不重写,这样容易出问题
    17     //想一个方法强制子类重写父类中的某一个方法
    18     public void run(){
    19         System.out.println(name+"游得很快");
    20     }
    21 }
    22 
    23 public class star {
    24     public static void main(String[] args) {
    25         Dog d = new Dog();
    26         d.name = "猎狗";
    27         Fish fish =  new Fish();
    28         fish.name = "星星鱼";        
    29         
    30         d.run();//猎狗跑得很快
    31         fish.run();//星星鱼游得很快
    32     }
    33 }
  • 相关阅读:
    常见寻找OEP脱壳的方法
    Windows内核原理系列01
    HDU 1025 Constructing Roads In JGShining's Kingdom
    HDU 1024 Max Sum Plus Plus
    HDU 1003 Max Sum
    HDU 1019 Least Common Multiple
    HDU 1018 Big Number
    HDU 1014 Uniform Generator
    HDU 1012 u Calculate e
    HDU 1005 Number Sequence
  • 原文地址:https://www.cnblogs.com/StarKL/p/6133153.html
Copyright © 2011-2022 走看看