Java面向对象编程——抽象类和接口

Java面向对象编程——抽象类和接口

定义类的过程就是抽象和封装的过程,而抽象类与接口则是对实体类进行更高层次的抽象,进定义公共行为和特征。

抽象类:

如果一个类没有足够的信息去描述一个具体的对象,那我们就称之为抽象类。

语法格式:

public abstract class 类名{
   }

案例代码:

package Demo01;

/**
 * @version 1.0
 * @author: jiazhihao
 * @date: 2021-05-13 10:31
 */
public class Demo01 {
   
    // 定义动物抽象类
    public abstract  class Animal{
   
        
    }
}

抽象方法:

有了抽象类,类中就要有与之对应的抽象方法。抽象发发就是用abstract修饰的方法,这种方法值声明返回的数据类型,方法名称和所需要的参数,没有方法体。也就是说在抽响雷中声明抽象方法时,值需要声明方法,不需要定义方法体。子类在继承父类时,必须重写父类的抽象方法,这也是抽象方法存在的意义。

语法格式:

public abstract 返回值类型 方法名(参数列表); 

案例代码:

package Demo01;

/**
 * @version 1.0
 * @author: jiazhihao
 * @date: 2021-05-13 10:31
 */
public class Demo01 {
    // 定义动物抽象类
    public abstract  class Animal{
    public abstract void go(); //  名为go的抽象方法,注意方法没有大括号
    }
}

抽象类和抽象方法具体该怎么使用? 抽象方法的作用是 什么?

案例代码

package Demo01;

/**
 * @version 1.0
 * @author: jiazhihao
 * @date: 2021-05-13 10:31
 */
public class Demo01 {
   
    // 定义动物抽象类
    public abstract  class Animal{
   
    public abstract void go(); //  名为go的抽象方法,注意方法没有大括号
    }

    public class Demo02 extends Demo01 {
   

        public void go(){
   
            System.out.println("鸟飞的块");
        }

    }

    public class Demo03 extends Demo01{
   
        public void go(){
   
            System.out.println("狗跑的块");
        }
    }

    


}

测试类:

package Demo01;

/**
 * @version 1.0
 * @author: jiazhihao
 * @date: 2021-05-13 10:42
 */
public class Demo04 {
   
    public static void main(String[] args) {
   
        Demo02 d = new Demo02();
        d.go();
        Demo03 demo03 = new Demo03();
        demo03.go();
    }
}

通过上面的代码我们可以总结:

定义抽象类就是用于继承的。和一般类的继承相比,子类继承抽象类必然会实现抽象方法。由于抽象方法都是没有方法体的,也就是说,抽象方法并没有写死,我么可以根据自己的需求去写

抽象类是一种模板式设计,通常是对同类事物相对具体的抽象。抽象类通常包含抽象方法、实体方法、属性变量。。我们在使用抽象方法和抽象类时,需要注意以下几点。

(1)包含抽象方法的类一定时抽象类。

(2)抽象类中的方法不一定都是抽象方法。抽象类也可以没有抽象方法

(3)构造方法不能声明为抽象方法

(4)abstract 不能与private 、static、final、native并修饰同一个方法

final修饰符

使用:

显示生活中,我们的身份证一经确定,身份证号就不能在此修改了。那我们Java中某些数据是定值,为了保证计算的正确性,不能在被修改,应该怎末办呢?这时候就用到了final修饰符,表示最终的。

final使用有以下几种情况。

(1)修饰类

(2)修饰方法

(3)修饰对象和变量

修饰类:

  1. 被final修饰过的类不能被继承

  2. .因为不能被继承,所以此类中的所有方法默认都是final修饰

  3. 该类如果不需要子类,不需要被扩展,类中的方法不允许被重写,就是用final

    修饰方法:

    被final修饰的方法可以被继承,不能被覆盖重写

    修饰对象和变量:

    final修饰一个对象,那么这个对象的引用不能变,但是值是可以变的。如果是基础类型,那么值不可变。

    案例代码:

    package Demo02;
    
    ;
    
    /**
     * @version 1.0
     * @author: jiazhihao
     * @date: 2021-05-13 10:31
     */
    public class Demo01 {
         
        public String name;
    
        public Demo01(String name) {
         
            super();
            this.name = name;
        }
    
        public String getName() {
         
            return name
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值