本教程操作环境:windows7系统、java10版,DELL G3电脑。
1.抽象类与普通类的异同
(1)只要是类都不能使用private进行修饰
(2)抽象类需要abstract进行修饰
(3)普通类可以实例化,抽象类不可以实例化
注意:
抽象方法只能定义在抽象类中,但是抽象类中可以有抽象方法和普通方法
2.抽象类好处与局限
(1)抽象类已经实现的方法可以被其子类使用,使代码可以被复用。
(2)同时提供了抽象方法,保证类子类具有的独特性。
局限:
当某一方法不再通用,子类继承父类,会出现重复,造成代码冗余
3.实例
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) { //抽象类,不能创建对象 // Animal a1= new Animal(); // a1.move(); Cat c1 = new Cat(); c1.eat();//父类的方法 c1.move();//子类重写来的方法 SmallDog d1 = new SmallDog(); d1.eat(); d1.move(); } }
我们做什么事情之前,会在以往的经历中找这类事物的模板,那么这个模板是一个抽象的。抽象类也是这样的模板,然后子类根据需要从其中继承。普通类也有着自身的优势,可以被实例化。
以上就是java基础中抽象类和普通类具体的分析介绍,相信小伙伴们已经对它们的异同有所了解,在不同的使用环境下,可以选择适合的类。