• java abstract关键字使用


    抽象类和抽象方法

    类的设计应该保证父类和子类能够共享特征。有时将一个父类设计的非常的抽象,以至于他没有具体的实例,这样的类叫做 抽象类

    abstract关键字的使用:

    • abstract 抽象的
    • abstract 可以修饰的结构:类、方法
    • abstract 修饰类:抽象类
      • 此类不能够被实例化
      • 抽象类中一定要有构造器,便于子类对象实例化调用。
      • 开发中都会提供抽象类的子类,让子类实例化
    /**
     * abstract关键字的使用
     * 1. abstract抽象的
     * 2. abstract可以用来修饰的结构:类、方法
     * */
    public class AbstractTest {
        public static void main(String[] args) {
            Student student = new Student("小明", 12);
            student.eat();
            student.walk();
            student.sleep();
        }
    }
    
    abstract class Person {
        String name;
        int age;
    
        public Person(){}
        public Person(String name, int age){
            this.name = name;
            this.age = age;
        }
    
        public void eat() {
            System.out.println("人吃饭");
        }
    
        public void walk() {
            System.out.println("人走路");
        }
    
        public void sleep() {
            System.out.println("人睡觉");
        }
    }
    
    class Student extends Person {
        public Student(){}
        public Student(String name, int age) {
            super(name, age);
        }
    }
    
    
    • abstract修饰方法:抽象方法

      • 抽象方法没有方法体

      • 包含抽象方法的类一定是抽象类

      • 需要继承的子类,实现该方法,或则子类也是抽象方法

      • /**
         * abstract关键字的使用
         * 1. abstract抽象的
         * 2. abstract可以用来修饰的结构:类、方法
         * */
        public class AbstractTest {
            public static void main(String[] args) {
                Student student = new Student("小明", 12);
                student.eat();
                student.walk();
                student.sleep();
            }
        }
        
        abstract class Person {
            String name;
            int age;
        
            public Person(){}
            public Person(String name, int age){
                this.name = name;
                this.age = age;
            }
        	// 这是一个抽象方法
            public abstract void eat();
        
            public void walk() {
                System.out.println("人走路");
            }
        
            public void sleep() {
                System.out.println("人睡觉");
            }
        }
        
        class Student extends Person {
            public Student(){}
            public Student(String name, int age) {
                super(name, age);
            }
        	
            // 子类实现抽象方法
            @Override
            public void eat() {
                System.out.println("学生吃有营养的");
            }
        }
        
        abstract class Student1 extends Person {
            public Student(){}
            public Student(String name, int age) {
                super(name, age);
            }
        }
        
        

    抽象类的使用场景

    抽象类是用来模型化哪些父类无法确定全部事项,而是由器子类提供具体实现的对象的类。

    abstract使用上的注意点

    • abstract 不能用来修饰:属性、构造器等结构
    • 不能用来修饰 私有方法(私有方法是不可以被重写的, 且私有方法不可以被子类直接访问)、静态方法、final的方法、final类
    追求吾之所爱
  • 相关阅读:
    随笔
    std::condition_variable(复习)
    随笔
    std::vector<std::vector<> >
    staitc_cast,const_cast....
    复制构造函数
    c++ 临时对象
    复制初始化和直接初始化
    随笔
    Fedora 安装oracle11g 之最简洁方式
  • 原文地址:https://www.cnblogs.com/rstz/p/14390980.html
Copyright © 2020-2023  润新知