7-12
package p1;
class AA {
AA(int a ){
System.out.println("a="+a);
}
}
class BB extends ConstructorDemo{
BB(String s){
System.out.println("s="+s);
}
}
public class ConstructorDemo{
public static void main(String[] args) {
BB b =new BB("hello");
}
}
7-13
package p1;
class Parent{
void printMe() {
System.out.println("a");
}
}
class Child extends Parent{
void printMe(){
System.out.println("b");
}
void printALL() {
super.printMe();
this.printMe();
printMe();
}
}
public class Text {
public static void main(String[] args) {
Child myC =new Child();
myC.printALL();
}
}
a
b
b
7-14
Bird.java
package p1;
public class Bird extends Animal {
public Bird() {
System.out.println("n");
}
public static void main(String[] args) {
Bird b = new Bird();
}
}
package p1;
Animal.java
public class Animal {
public Animal() {
System.out.println("m");
}
}
m
n
7-15
class Super {
public int i=0;
public Super(String text) {
i=1;
}
}
package p1;
public class Sub extends Super {
public Sub(String text) {
i = 2;
}
public static void main(String[] args) {
Sub sub = new Sub("hello");
System.out.println(sub.i);
}
}
A
7-16
package p1;
class Alpha{
String getType() {return "alpha";}
}
class Beta extends Alpha{
String getType() {return "beta";}
}
class Gamma extends Beta{
String getType() {
return "gamma";
}
public static void main(String[] args) {
Alpha g1 =new Beta();
Alpha g2 =new Gamma();
System.out.println(g1.getType()+g2.getType());
}
}
Beta gamma
7-18
package p1;
public class MyMain {
IamAbstract ia = new IamAbstract();
}
class IamAbstract{
IamAbstract(){}
}
7-19
package p1;
abstract class AbstractIt {
abstract float getFloat();
}
package p1;
public class AbstractTest extends AbstractIt {
private float f1 = 1.0f;
float getFloat() {
return f1;
}
}
7-20
AbstractTest.java
package p1;
public class AbstractTest {
public static void main(String[] args) {
AA aa = new BB();
aa.callme();
aa.metoo();
}
}
AA.java
package p1;
abstract class AA {
abstract void callme();
void metoo() {
System.out.println("inside aa's metoo().");
}
}
BB.java
package p1;
class BB extends AA {
void callme() {
System.out.println("inside bb's callme().");
}
void metoo() {
System.out.println("inside bb's metoo().");
}
}
7-21
7-22
package p1;
class Employee{}
class Manager extends Employee{}
class Secretary extends Employee{}
class Programmer extends Employee{}
public class test {
public static void show(Employee e) {
if (e instanceof Manager)
System.out.println("manager");
else if (e instanceof Secretary)
System.out.println("Secretary");
else if (e instanceof Programmer)
System.out.println("Programmer");
}
public static void main(String[] args) {
Manager m=new Manager();
Secretary s =new Secretary();
Programmer p =new Programmer();
show(m);
show(s);
show(p);
}
}
manager
Secretary
Programmer
7-23
package p1;
class Super {
public float getNum() {
return 3.0f;
}
}
package p1;
public class Sub extends Super {
public void getNum() {}
}
实训任务1
package p1;
class Animal{
private double weight;
public void eat() {
System.out.println("eat吃掉");}
public Animal() {
System.out.println("animal动物");}
}
class Fish extends Animal{
public int numberOfFins;
public void swim() {
System.out.println("Fish,swim鱼在游");}
public Fish() {//子类的无参构造方法,第一行必须市super(),继承父类的构造方法。
super();//java的继承。 在子类的构造方法的第一行,必须是第一行调用super(),这样就调用了父类的构造方法
System.out.println("super.fish鱼");
}
}
class Bird extends Animal{
public int numberOfWings;
public void fly() {
System.out.println("Bird,fly鸟在飞");}
public Bird() {
super();
System.out.println("super.bird鸟");
}
}
public class animalbirdfish {
public static void main(String[] args) {
Bird b =new Bird();//创建一个Bird对象b
b.numberOfWings=1;//需要对其赋值assign a value before returning
b.eat();
b.fly();
b.toString();//toString ()方法返回反映这个对象的字符串
}
}
/*
public class animalbirdfish {
public static void main(String[] args) {
Animal animal;
Bird bird = new Bird();
bird.eat();
animal=bird;
animal.fly();//有错误
Bird b =(Bird)animal;
b.fly();
}
}
*/
animal动物
super.bird鸟
eat吃掉
Bird,fly鸟在飞
实训任务2
Circle.java
package p1;
public class Circle {//父类方法
//double centerX;
//double centerY;
double radius;
public Circle() {
//this(1.0);
}
public Circle(double radius) {
this.radius = radius;
}
public double getRadius() {//get方法
return radius;
}
public void setRadius(double radius) {//set方法
this.radius = radius;
}
public double getArea() {
double area = Math.PI * radius * radius;
return area;
}
public double getPerimeter() {
double perimeter = 2 * Math.PI * radius;
return perimeter;
}
}
/*
public static void main(String[] args) {
Circle c = new Circle();
System.out.println(c.getRadius());
c.setRadius(5);
System.out.println(c.getArea());
System.out.println(c.getPerimeter());
}*/
Cylinder.java
package p1;
import java.util.Scanner;
public class Cylinder extends Circle {
private double height;
public Cylinder() {}
public Cylinder(double radius, double height) {//构造方法
this.radius = radius;
this.height = height;
}
@Override // 重写,告诉编译器检查这个方法,保证父类要包含一个被该方法重写的方法,否则就会编译出错。
public double getArea() {
double area = getPerimeter() * height + radius * radius * 3.14 * 2;
return area;
}
public double getVolume() {//定义getVolume()方法求圆柱的面积
return super.getArea() * height;
}
public static void main(String[] args) {
double radius, height;
Scanner input = new Scanner(System.in);
System.out.println("请输入圆柱的底面半径:");
radius = input.nextDouble();
System.out.println("请输人圆柱的高:");
height = input.nextDouble();
Cylinder c = new Cylinder(radius, height);//构造Cylinder()的对象c
System.out.println("圆柱表面积是:" + c.getArea());
System.out.println("圆柱体积是:" + c.getVolume());
}
}