java面向对象编程-抽象类

news/2024/7/5 19:18:58 标签: 抽象类

1.抽象类只能继承1个抽象类
2.抽象类内部可以有字段,内部可以定义抽象方法,也可以定义非抽象方法
3.继承抽象类必须实现抽象类的方法
4.抽象类不能被实例化

abstract class Person {				//抽象类
    public abstract void run();
}
class Child extends Person {
	public void run() {
		System.out.println("xxxxxxxxxxxxxxx");
	}
}
Person p = new Person(); // 编译错误 抽象类不能被实例化
Person p=new Child();	//正确
p.run();//发生多态

向抽象编程的本质就是:
上层代码只定义规范(例如:abstract class Person);
不需要子类就可以实现业务逻辑(正常编译);
具体的业务逻辑由不同的子类实现,调用者并不关心。

例子:
抽象类 Abstract
A B 类继承Abstract
在fun中进行调用

public abstract class Abstract {
	abstract void fun();
	abstract void fun1();
}
class A extends Abstract{
	public void fun(){
		System.out.println("A fun");
	}
	public void fun1(){
		System.out.println("B fun1");
	}
}
class B extends Abstract{
	public void fun(){
		System.out.println("B fun");
	}
	public void fun1(){
		System.out.println("B fun1");
	}
}
//main中进行调用
	public static void main(String[] arg0){	
			A a=new A();
			B b=new B();
			fun(a);
			fun(b);
		}
	public static void fun(Abstract s){//调用发生多态
		s.fun();
		s.fun1();
	}

http://www.niftyadmin.cn/n/1035872.html

相关文章

java面向对象编程-接口

一.概念 如果一个抽象类没有字段,所有方法全部都是抽象方法的话,则可以定义为:interface。 接口定义的所有方法默认都是public abstract的,所以这两个修饰符不需要写出来(写不写效果都一样)。 1个接口可以继承多个接…

环信--即时通讯平台

一、底层实现: Socket:套接字 网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个scoket; 实际上是一条通信管道。 二、网络通信要素: 网络上的请求实际上就是:通过Socket…

java面向对象编程-静态字段和静态方法

静态字段 实例字段在每个实例中都有自己的一个独立“空间”,但是静态字段只有一个共享“空间”,所有实例都会共享该字段。举个例子: public class Hello{public static void main(String[] args){Person pnew Person("sikui",25);…

java面向对象编程-方法 构造方法 重载

在Java中,我们经常看到public、protected、private这些修饰符。在Java中,这些修饰符可以用来限定访问作用域. public 定义为public的class、interface可以被其他任何类访问 private 定义为private的field、method无法被其他类访问 protect…

iOS-CocoaPods的安装和使用

cocoaPods的作用 在开发iOS项目时,会常使用到第三方类库。   惯常做法是到GitHub上或其它网站下载一个一个的类库,然后导入到工程中,并且引入各种的类库,做各种的配置。有时候还要处理ARC与MRC的问题,很麻烦。  …

java核心类-String

String 在Java中,String是一个引用类型,它本身也是一个class,实际上字符串在String内部是通过一个char[]数组表示的,String太常用了. 常用: String str"hello world";字符串的比较:equal实现 不能使用=&…

VL01N/QA32/QA11出口增强

需求:某工厂某库存地点销售发货时不需要做检验批处理. 分析:SAP标准质量管理视图只能控制到工厂级别,无法实现库存地点级别的控制. 所以寻求abap方式去解决,寻遍N多出口与增强也无法实现,最后只能进行残忍 的标准程序debug了. 程序名:FV50WF0W 程序段: *... Check QM status? …

设置placeholder的颜色

方法一:自定义UITextField类,重写drawPlaceholderInRect方法 - (void)drawPlaceholderInRect:(CGRect)rect { [self.placeholder drawInRect:CGRectMake(0, 10,rect.size.width, 25) withAttributes:{ NSForegroundColorAttributeName:[UIColor whiteCol…