java 笔记(3)抽象类与抽象方法

抽象类与抽象方法

(抽象类必须被继承,抽象方法必须被重)

抽象类:包含一个抽象方法的类。

抽象方法:声明而未被实现的方法,抽象方法必须使用abstract关键字声明。

abstract class Person{
    private int age;
    private String name;
    public Person(int age, String name) {
        this.age = age;
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }

    public abstract void want();
}

class Student extends Person{
    private int score;

    public int getScore() {
        return score;
    }

    public void setScore(int score) {
        this.score = score;
    }

    public Student(int age, String name,int score) {
        super(age, name);
        this.score=score;
    }

    @Override
    public void want() {
        System.out.println("姓名:"+getName()+"  年龄"+getAge()+"  成绩"+getScore());
    }

}

class Worker extends Person{
    private int money;

    public int getMoney() {
        return money;
    }

    public void setMoney(int money) {
        this.money = money;
    }

    public Worker(int age, String name,int money) {
        super(age, name);
        this.money=money;
        // TODO Auto-generated constructor stub
    }

    @Override
    public void want() {
        System.out.println("姓名:"+getName()+"  年龄"+getAge()+"  工资"+getMoney());

    }

}
public class AbsDemo01 {

    public static void main(String[] args) {
        Student s = new Student(10, "小明", 100);
        s.want();
        Worker w = new Worker(35, "大明", 1000);
        w.want();
    }

}

运行结果:

姓名:小明 年龄10 成绩100
姓名:大明 年龄35 工资1000

分析:

上面的源代码的抽象方法public abstract void want;(我可以把它理解为是他们子类公有的方法,每个Student和woker都有他们想要的东西!)

归纳:

1.抽象类不能被实例化。

2.抽象类不一定包含抽象方法,但是如果一个类中包含了抽象方法,则该类必须被定义为抽象类。

3.抽象类必须被继承。

4.抽象方法必须被重写。

总而言之,抽象类不能直接实例化,要通过其子类进行实例化。

时间: 2024-10-13 09:13:21

java 笔记(3)抽象类与抽象方法的相关文章

java中的抽象类和抽象方法

abstract修饰抽象类和抽象方法. 包含抽象方法的类只能定义成抽象类,但是抽象类中可以没有抽象方法. 抽象方法没有方法体.只能由子类提供实现(重写). 抽象类只能被继承,final修饰的类不能被继承,所以abstract和final不能共存. 抽象方法如下所示: public abstract class Sharp//抽象类 { private String color; public abstract String getType();//抽象方法 public abstract dou

阿花宝宝 Java基础笔记 之 抽象类与抽象方法

一 . 抽闲累和抽象方法   1.  抽象类中的抽象方法必须被子类实现  除非子类也是抽象的.   2.抽象类不能呗实例化  但是抽象类的引用可以志向一个具体实现他的子类对象   3.  抽象类中的有构造方法  不能通过实例化的方式调用 但是可以在创建子类对象时候调用  所以说抽象累的构造方法是为让子类调用的    4. 抽象类中的抽象方法不可能 被调用  因为不能有一个抽象类的对象(抽象类不能被实例化)   5. 抽象类中可以有普通成员(变量 方法)  静态方法  但是子类的中同名的静态方法不

【Java笔记】——抽象类和接口

现在开发的主流都是面向对象,面向过程几乎已经被淘汰了.理解面向对象,就要知道它的三大特性,多态继承和封装.在学习面向对象的过程中,总是会接触到抽象类和接口,涉及到继承和实现,而这两个概念又总是傻傻分不清楚.不过经过不懈努力,还是解决的差不多了.下面就来介绍下抽象类和接口: 抽象类 概念 用abstract关键字来修饰的类称为抽象类 特点 1.不是完整的类,只能作为基类 2.不能被实例化 3.有抽象方法的类必须声明为抽象类,而且该抽象方法必须被重写 举例 <span style="font-

JAVA笔记6__抽象类/接口/多态/instanceof关键字、父类设计法则

/** * 抽象类:很多具有相同特征和行为的类可以抽象为一个抽象类 * 1.抽象类可以没有抽象方法,有抽象方法的类必须是抽象类 * 2.非抽象类继承抽象类必须实现抽象方法[可以是空实现] * 3.抽象类可以有方法和属性 * 4.抽象类不能被实例化 * 5.抽象类不能声明为final * 6.抽象类可以有构造方法[不代表实例化对象] */ public class Main { public static void main(String[] args) { Goddess m1 = new Go

JAVA基础篇—抽象类,抽象方法

class Shape 1 package com.shape; 2 3 public abstract class Shape { 4 double area;// 5 double per;// 6 String color;// 7 public Shape() { 8 } 9 public Shape(String c){ 10 this.color=c; 11 } 12 abstract double getArea(); 13 abstract double getPer(); 14

5.4-全栈Java笔记:面向对象进阶之对象的转型 | FINAL关键字 |抽象方法和抽象类

对象的转型(casting) 引用变量只能调用它编译类型的方法,不能调用它运行类型的方法.这时,我们就需要进行类型的强制转换! [示例1]对象的转型 public class   TestCasting { public static void   main(String[] args) { Object obj = new   String("北京");  //向上可以自动转型 //obj.charAt(0)      //无法调用.编译器认为obj是Object类型而不是Strin

Java读书笔记十四(java中的抽象类)

前言 在java中,有时候需要对类的行为进行提取,因此也就有了抽象类和接口的概念,这篇博客,小编来剖一下java中的抽象类和接口.  抽象方法和抽象类 抽象方法和抽象类的规则如下: 1.抽象类必须使用abstract修饰符来修饰,抽象方法也必须使用abstract修饰符来修饰,抽线方法不能有方法体 2.抽象类不能被实例化,无法使用new关键字来调用抽象类的构造器创建抽象类的实例.即使抽象类里不可包含抽象方法,这个抽象类也不能被创建实例. 3.抽象类可以包含成员变量.方法(普通方法和抽象方法都可以

java抽象类和抽象方法

抽象类: java中定义没有方法体的方法,该方法有由其子类来具体的实现. 该没有方法体的方法我们称为抽象方法,含有抽象方法的类为抽象类. 抽象方法的特点: 1.只有方法头没有方法体的方法 2.抽象方法用abstract修饰 3.抽象方法代表一种不确定的操作或行为 4.抽象方法不能被调用 抽象类的特点: 1.定义中含有抽象方法的类叫抽象类 2.抽象类用abstract修饰 3.抽象类代表一种抽象的对象类型 4.抽象类不能实例化 5.抽象类可以有具体的方法,可以没有抽象方法 //公司所有员工都有工号

二、Java面向对象(14)_抽象类和抽象方法

2018-05-06 抽象类和抽象方法 一.抽象的使用 当父类的某些方法不确定时,可以用abstract关键字来修饰该方法[抽象方法],用abstract来修饰该类[抽象类]. 我们都知道,父类是将子类所共同拥有的属性和方法进行抽取,这些属性和方法中,有的是已经明确实现了的,有的还无法确定,那么我们就可以将其定义成抽象,在后日子类进行重用,进行具体化.这样,抽象类也就诞生了. 例如,定义了"动物"父类,其中"动物名称"和"动物年龄"属性已经明确了