
本教程操作环境:windows7系统、java10版,DELL G3电脑。
1.抽象类与普通类的异同
(1)只要是类都不能使用private进行修饰
(2)抽象类需要abstract进行修饰
(3)普通类可以实例化,抽象类不可以实例化
注意:
抽象方法只能定义在抽象类中,但是抽象类中可以有抽象方法和普通方法
2.抽象类好处与局限
(1)抽象类已经实现的方法可以被其子类使用,使代码可以被复用。
(2)同时提供了抽象方法,保证类子类具有的独特性。
局限:
当某一方法不再通用,子类继承父类,会出现重复,造成代码冗余
3.实例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 | package com.qf.demo04;
public abstract class Animal {
private int age;
private char sex;
public void eat(){
System.out.println( "吃东西。。" );
}
public abstract void move();
public Animal(int age, char sex) {
this .age = age;
this .sex = sex;
}
public Animal() {
}
public int getAge() {
return age;
}
public void setAge(int age) {
this .age = age;
}
public char getSex() {
return sex;
}
public void setSex(char sex) {
this .sex = sex;
}
}
package com.qf.demo04;
public class Cat extends Animal{
@Override
public void move() {
System.out.println( "猫咪走猫步。。" );
}
}
package com.qf.demo04;
public abstract class Dog extends Animal {
}
package com.qf.demo04;
public class BigDog extends Dog {
@Override
public void move() {
System.out.println( "大狗,慢慢的走。。。" );
}
}
package com.qf.demo04;
public class SmallDog extends Dog{
@Override
public void move() {
System.out.println( "撅着屁股跑。。。" );
}
}
package com.qf.demo04;
public class Test9Abstract {
public static void main(String[] args) {
Cat c1 = new Cat();
c1.eat();
c1.move();
SmallDog d1 = new SmallDog();
d1.eat();
d1.move();
}
}
|
我们做什么事情之前,会在以往的经历中找这类事物的模板,那么这个模板是一个抽象的。抽象类也是这样的模板,然后子类根据需要从其中继承。普通类也有着自身的优势,可以被实例化。
以上就是java基础中抽象类和普通类具体的分析介绍,相信小伙伴们已经对它们的异同有所了解,在不同的使用环境下,可以选择适合的类。