---------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------
抽象类 abstract
1.抽象方法必须定义在抽象类中。
2.抽象方法和抽象类必须被abstract修饰。
3.抽象类不可以用new创建对象,因为调用抽象方法没意义。
4.抽象类中的方法要被使用必须由子类覆写其所有的抽象方法后,建立子类对象调用,如果子类只覆盖了部分抽象方法,那么该子类还是一个抽象类。
当多个类中出现相同功能,但功能主体不同,可以进行抽取,只抽取功能定义,而不抽取功能主体。
抽象类比一般类多了个抽象方法,就是在类中可以定义抽象方法。
抽象类不可以实例化。
抽象类中可以不定义抽象方法,这样做是为了不让该类建立对象。
抽象类练习
对员工进行建模,包含3个属性:姓名、工号、工资。经理也是员工,除了含有员工的属性外,另外还有一个奖金属性。用继承思想设计出员工类和经理类,类中提供必要的方法进行属性访问。
abstract class Employee
{
private String name;
private String id;
private double pay;
Employee(String name, String id, double pay)
{
this.name = name;
this.id = id;
this.pay = pay;
}
public abstract void work();
}
class Manager extends Employee
{
private int bonus;
Manager(String name, String id, double pay, int bonus)
{
super(name,id,pay);
this.bonus = bonus;
}
public void work()
{
System.out.println("Manager work");
}
}
class Pro extends Employee
{
Pro(String name, String id, double pay)
{
super(name,id,pay);
}
public void work()
{
System.out.println("Pro work");
}
}
public class AbstractTest {
public static void main(String[] args) {
}
}
接口(interface)
接口,初期可以理解为一个特殊的抽象类,当抽象类中的方法都是抽象的,该类可以通过接口的形式来表示。
格式特点:
1.接口中常见定义:常量,抽象方法。
2.接口中的成员都有固定的修饰符:
常量:public static final (public static final int x = 3; )
方法:public abstract (public abstract void show() )
接口中成员都是public
接口不用继承,用实现 implements
接口可以不创建对象,因为有抽象方法,需要被子类实现,子类对接口中的抽象方法全部覆盖后,子类才可以实例化,否则子类是一个抽象类。
接口可以被类多实现,也是对多继承不支持的转换形式。
接口可以继承接口,支持多继承。
接口是对外暴露的规则,接口是程序的功能扩展,类与接口之间是实现关系,而且类可以继承一个类的同时实现多个接口。
基本功能定义在类中,扩展功能定义在接口中。
interface Inter
{
public static final int A = 3;
public abstract void show();
}
interface InterA
{
public static final int B = 4;
public abstract void method();
}
class Test implements Inter,InterA
{
public void show(){};
public void method(){};
}
public class InterfaceDemo
{
public static void main(String[] args)
{
Test t = new Test();
System.out.println(t.A);
System.out.println(Test.A);
System.out.println(Inter.A);
System.out.println(t.B);
}
}
-----------------------ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------详细请查看:http://edu.csdn.net