JAVA 抽象类

抽象方法:使用abstract修饰的方法,没有方法体,只有声明。抽象方法可以当做是一种规范,让子类必须实现。

注意:

1.抽象方法没有方法体,只能以分号结尾

2.抽象方法只能声明在抽象类中(含有抽象方法的类一定是抽象类)

3.抽象方法必须被子类实现;子类如果不能实现抽象方法,子类也必须是抽象类

************************************************************************************

包含抽象方法的类就是抽象类,通过abstract方法定义规范,然后要求子类必须定义具体实现。通过抽象类,我们就可以做到严格限制子类的设计,使子类之间更加通用

注意:

a、有抽象方法的类只能定义成抽象类,但抽象类中不一定有抽象方法

b、抽象类不能实例化,即不能用new来实例化抽象类。

c、从抽象类可以包含属性、方法、构造方法、final修饰的方法。但是构造方法不能用来new实例,只能用来被子类调用。

d、抽象类中可以包含0个或多个抽象方法

e、抽象类只能用来被继承。

f、 抽象方法必须被子类实现;子类如果不能实现抽象方法,子类也必须是抽象类

抽象类:

package com.sxt.abstract01;

/*** 使用abstract修饰的类称为抽象类* */

public abstract class Person {

//1.成员变量、实例变量、属性

private String name;

//2.成员方法、实例方法

public void intro() {

    System.out.println(“大家好,我的名字是:”+name);

}

//3.静态方法

public static void show() {

}

//抽象类可以有 4.构造方法

public Person() {

   System.out.println(“Person类的无参构造方法”);

}

//5.final修饰的方法,只能被子类调用,不能被子类重写

public final void fun() {

}

}

继承类及main方法:

package com.sxt.abstract01;

public class Student extends Person{

public Student() {

super();//调用父类中的无参构造方法

System.out.println(“Student类中的无参构造方法”);

}

public static void main(String[] args) {

//Cannot instantiate the type Person抽象类不可以创建对象

//Person person = new Person();

Student stu = new Student();

}

public abstract class Animal {

public abstract void shout();

}

class Dog extends Animal{

@Override

public void shout() {

System.out.println(“汪汪汪…….”);

}

}

class Cat extends Animal{

@Override

public void shout() {

System.out.println(“喵喵喵………”);

}

}

public class Test {

public static void main(String[] args) {

Animal dog = new Dog();

Animal cat = new Cat();

dog.shout();

cat.shout();

}

}

腾讯云推出云产品限时特惠抢购活动:2C2G云服务器7.9元/月起
本文链接:https://www.jhelp.net/p/pdGp4QlgsnjxYTaT (转载请保留)。
关注下面的标签,发现更多相似文章