1.Shap

package com.yfs.javase;

public class Shape /*extends Object */{  //默认继承object  object方法全部继承
//计算面积方法
public double getArea() {//代码完全没用
System.out.println("计算面积");
return 0;
} }

2.Circle

package com.yfs.javase;

public class Circle extends Shape {

	private double r;

	public Circle(double r) {
this.r = r;
System.out.println("创建圆形面积");
} // public double getArea() {//覆盖父类的方法
// System.out.println("计算圆形面积...");
// return 3.14 * r * r;
// } }

3.Triangle

package com.yfs.javase;

public class Triangle  extends Shape {

	private double height;
private double width; public Triangle(double height, double width) {
this.height = height;
this.width = width;
System.out.println("创建三角形面积");
} public double getArea() {
System.out.println("计算三角形面积...");
return 1.0 / 2 * width * height;
} }

4.Rectangle

package com.yfs.javase;

public class Rectangle  extends Shape {

	private double width;
private double length; public Rectangle(double width, double length) {
this.width = width;
this.length = length;
System.out.println("创建矩形面积");
} public double getArea() {
System.out.println("计算矩形面积...");
return width * length;
} }

5.shap测试

package com.yfs.javase;

public class ShapeTest {

	public static void main(String[] args) {
Shape[] shapes = new Shape[10]; Shape s = new Shape();//创建这个类对象
s.getArea(); } }

6.抽象类

package com.yfs.javase;
//类中有抽象方法 类必须是抽象的
public abstract class Demo1 { public abstract void method(); //没有方法体 抽象方法
public abstract double method1(int a, String name);
public abstract double method1(String name,int a);
//抽象类可以声明普通方法 子类可以继承
public void method2() {
System.out.println("call method2()... ");
}
//普通方法是否可调用抽象方法
public void method3() {
method();//不会调用父类的方法 调用子类对象的方法 多态
}
}
abstract class Child extends Demo1 {
@Override
public void method() {
System.out.println("call () .......");
}
}
class Son extends Child { @Override
public double method1(int a, String name) {
// TODO Auto-generated method stub
return 0;
} @Override
public double method1(String name, int a) {
// TODO Auto-generated method stub
return 0;
} } class Children extends Demo1 {
//子类继承抽象类 必须覆盖抽象方法
@Override
public void method() {
System.out.println("子类覆盖的抽象方法..."); } @Override
public double method1(int a, String name) {
System.out.println("name = " + name);
System.out.println("a = " + a);
return 0;
} @Override
public double method1(String name, int a) {
// TODO Auto-generated method stub
return 0;
} public static Demo1 test (Demo1 d) { return new Children();
} }

7.抽象类测试

package com.yfs.javase;

public class Demo1Test {

	/**
* 1.抽象类不能实例化
* 2.子类必须覆盖抽象类的抽象方法
*/
public static void main(String[] args) {
Demo1 d1;//声明引用
//创建对象
//d1 = new Demo1();//抽象类不能实例化
d1 = new Children();
d1.method();
d1.method2(); Children c1 = new Children();
c1.method2(); System.out.println("============================"); d1.method3();
c1.method3(); d1.method1(15, "影分身"); Demo1 d2 = Children.test(c1);
Demo1 c2 = Children.test(d1);
d2.method2();
c2.method2(); } }

java新手笔记19 抽象类的更多相关文章

  1. java新手笔记20 抽象类模板(letter)

    1.抽象类 package com.yfs.javase; //信模板 public abstract class Templater { public abstract String toName( ...

  2. JAVA自学笔记19

    JAVA自学笔记19 1.集合总结 Collection(单列集合) List(有序可重复) ArrayList:底层数据结构是数组 ,查询快,增删慢.线程不安全,效率高 Vector:底层数据结构是 ...

  3. java新手笔记24 Math/String对象

    1.Math package com.yfs.javase; public class MathDemo { public static void main(String[] args) { int ...

  4. Java学习笔记之抽象类与接口

    抽象类(abstract) 抽象类概述:一个类被abstract修饰表示这个类是抽象类, 自己定义方法但是不实现方法,后代去实现 抽象方法:   一个方法被abstract修饰表示这个方法是抽象方法 ...

  5. 0026 Java学习笔记-面向对象-抽象类、接口

    抽象方法与抽象类 抽象方法用abstract修饰,没有方法体部分,连花括号都不能有: 抽象方法和抽象类都用abstract修饰 包含抽象方法的类一定是抽象类:但不包含抽象方法的类也可以是抽象类 不能创 ...

  6. JAVA新手笔记 Intent对象和Bundle对象

    Intent对象和Bundle对象 功能主要是在 MainActivity中定义了2个EditText,当用户输入内容,把他传入到第二个活动, 自己新创的活动中,MyActivity中 放在MainA ...

  7. java新手笔记34 连接数据库

    1.JdbcUtil package com.yfs.javase.jdbc; import java.sql.Connection; import java.sql.DriverManager; i ...

  8. java新手笔记33 多线程、客户端、服务器

    1.Mouse package com.yfs.javase; public class Mouse { private int index = 1; private boolean isLive = ...

  9. java新手笔记32 jdk5新特性

    1.for package com.yfs.javase; import java.awt.Color; import java.util.Calendar; import java.util.Has ...

随机推荐

  1. bzoj 1483 [HNOI2009]梦幻布丁(链表+启发式合并)

    1483: [HNOI2009]梦幻布丁 Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 1818  Solved: 761[Submit][Status ...

  2. cloudstack安装篇2-主机名配置

    CloudStack要求正确配置主机名.在默认情况下,安装完操作系统后,主机名是localhost.localdomain.运行下面的命令来测试: hostname --fqdn 在此处将返回这样的结 ...

  3. HW5.14

    public class Solution { public static void main(String[] args) { System.out.printf("%s\t%s\n&qu ...

  4. POJ1423 - Big Number(Stirling公式)

    题目大意 求N!有多少位 题解 用公式直接秒杀... 代码: #include<iostream> #include<cmath> using namespace std; # ...

  5. poj 2367 Genealogical tree (拓扑排序)

    火星人的血缘关系很奇怪,一个人可以有很多父亲,当然一个人也可以有很多孩子.有些时候分不清辈分会产生一些尴尬.所以写个程序来让n个人排序,长辈排在晚辈前面. 输入:N 代表n个人 1~n 接下来n行 第 ...

  6. 坑爹的IE quirk模式【转】

    调试一个页面,ie下面页面css样式很是奇怪,各种失效.找了半天原因不知道怎么回事.最后在调试工具中发现,文档模式为quirk,改成别的(IE 7|8|9)正常. 为什么会自动选择此文档模式呢? 先看 ...

  7. jenkins持续集成配置备忘

    配过好几次,但是老忘记.记录备忘. 安装下列插件: ssh和git插件用来下载源码 publish over ssh 插件用来发布代码到测试环境. email插件用来更强大的email配置. file ...

  8. PC问题-使用BAT方法设置IP地址

    ::------以下为批处理文件内容---- @echo off ::set slection1= set/p slection1=请输入IP地址: netsh interface ip set ad ...

  9. Camtasia Studio8使用教程

    tip:善于使用ctrl+f搜索目录查看内容 目录 软件的下载与安装 软件的汉化与界面介绍 录制前准备与试机录制 录像机的设置 屏幕画 导入与编辑视频(包括图片,音乐,媒体) 时间线轨道时间轴 标记的 ...

  10. git 秘钥的生成

    在命令查看自己的秘钥还是公钥 cat .ssh/id_rsa.pub/cat .ssh/id_rsa