web开发 android教程 json oracle class nhibernate ios7 upload vue开发 vue修改样式 找公司做网站 郑州小程序公司 java并发编程视频 android开发项目 mysql卸载重装 升级python版本 hbuilder插件 wps文件修复工具下载 python中open python类和对象 python获取时间戳 python传递参数 javafile java框架 java开发学习 java运行环境 linux格式化命令 js四舍五入 幽城幻剑录五内 corelpainter 梦幻西游手游助手 blued是什么软件 系统维护工具 我的世界透视 list删除指定元素 瑞兹技能 pro换肤 操作系统安装 淘宝抽奖活动 平原门下客三千
当前位置: 首页 > 学习教程  > 编程语言

【详细+超基础】Java-学习笔记 07

2021/1/28 22:59:44 文章标签:

二、抽象类 2.1抽象类的概述(理解) 当我们在做子类共性功能抽取时,有些方法在父类中并没有具体的体现,这个时候就需要抽象类了! 在Java中,一个没有方法体的方法应该定义为抽象方法,而类中如果…

二、抽象类

2.1抽象类的概述(理解)

当我们在做子类共性功能抽取时,有些方法在父类中并没有具体的体现,这个时候就需要抽象类了! 在Java中,一个没有方法体的方法应该定义为抽象方法,而类中如果有抽象方法,该类必须定义为抽象类!

2.2抽象类的特点(记忆)

  • 抽象类和抽象方法必须使用 abstract 关键字修饰
//抽象类的定义
public abstract class 类名 {}
//抽象方法的定义
public abstract void eat();
  • 抽象类中不一定有抽象方法,有抽象方法的类一定是抽象类

  • 抽象类不能实例化

​ 抽象类如何实例化呢?参照多态的方式,通过子类对象实例化,这叫抽象类多态

  • 抽象类的子类

​ 要么重写抽象类中的所有抽象方法

​ 要么是抽象类

2.3抽象类的成员特点(记忆)

成员的特点

  • 成员变量

​ 既可以是变量

​ 也可以是常量

  • 构造方法

​ 空参构造

​ 有参构造

  • 成员方法

​ 抽象方法

​ 普通方法

  • 代码演示

动物类

public abstract class Animal {
private int age = 20;
private final String city = "北京";
public Animal() {}
public Animal(int age) {
this.age = age;
}
public void show() {
age = 40;
System.out.println(age);
// city = "上海";
System.out.println(city);
}
public abstract void eat();
}

猫类

public class Cat extends Animal {
@Override
public void eat() {
System.out.println("猫吃鱼");
}
}

测试类

public class AnimalDemo {
public static void main(String[] args) {
Animal a = new Cat();
a.eat();
a.show();
}
}

2.4抽象类的案例(应用)

  • 案例需求

请采用抽象类的思想实现猫和狗的案例,并在测试类中进行测试

  • 代码实现

动物类

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

猫类

public class Cat extends Animal {
public Cat() {
}
public Cat(String name, int age) {
super(name, age);
}
@Override
public void eat() {
System.out.println("猫吃鱼");
}
}

狗类

public class Dog extends Animal {
public Dog() {
}
public Dog(String name, int age) {
super(name, age);
}
@Override
public void eat() {
System.out.println("狗吃骨头");
}
}

测试类

public class AnimalDemo {
public static void main(String[] args) {
//创建对象,按照多态的方式
Animal a = new Cat();
a.setName("加菲");
a.setAge(5);
System.out.println(a.getName()+","+a.getAge());
a.eat();
System.out.println("­­­­­­­­");
a = new Cat("加菲",5);
System.out.println(a.getName()+","+a.getAge());
a.eat();
}
}


本文链接: http://www.dtmao.cc/news_show_650122.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?